Ajout de la colonne 'Ordre du menu' à l'écran d'administration de type publication personnalisé

29

Je souhaite utiliser l'attribut menu order pour contrôler le classement d'un type de publication personnalisé utilisé dans un but spécifique.

Il est assez facile de l'ajouter au CPT via supports => array('page-attributes') , mais comment puis-je afficher la valeur d'ordre du menu sur l'écran de liste d'administrateur pour ce CPT?

    
posée anu 29.02.2012 - 21:06

3 réponses

44

OK - à la fin s’est avéré être assez simple - comme j’avais eu une sorte de blocage mental - menu_order est une variable dans l’objet $post (merci à @brady de me l’avoir rappelé).

La publication de @ scribu sur la création de valeurs de colonne pouvant être triées donne le reste.

Ainsi, en supposant que le type de publication personnalisé s'appelle header_text , il s'agit des fonctions et des points d'ancrage nécessaires:

Ajouter une nouvelle colonne pour la commande

/**
* add order column to admin listing screen for header text
*/
function add_new_header_text_column($header_text_columns) {
  $header_text_columns['menu_order'] = "Order";
  return $header_text_columns;
}
add_action('manage_edit-header_text_columns', 'add_new_header_text_column');

Afficher les valeurs de colonne

/**
* show custom order column values
*/
function show_order_column($name){
  global $post;

  switch ($name) {
    case 'menu_order':
      $order = $post->menu_order;
      echo $order;
      break;
   default:
      break;
   }
}
add_action('manage_header_text_posts_custom_column','show_order_column');

Définissez la colonne pour pouvoir être triée

/**
* make column sortable
*/
function order_column_register_sortable($columns){
  $columns['menu_order'] = 'menu_order';
  return $columns;
}
add_filter('manage_edit-header_text_sortable_columns','order_column_register_sortable');
    
réponse donnée anu 01.03.2012 - 20:24
6

Cela fait trop longtemps, mais pour l'enregistrement, vous pouvez afficher l'option "ordre des menus" dans l'administrateur, en incluant simplement "attributs de page" dans le tableau d'options "supports". Par exemple:

    register_post_type( 'columna',
    array(
        'labels' => array(
            'name' => __( 'Columnas' ),
            'singular_name' => __( 'Columna' ),
        ),
        'supports' => array( 'title', 'thumbnail', 'excerpt', 'page-attributes' ),
        'public' => true,
        'has_archive' => false,
        'menu_position'=>5
    )
);
    
réponse donnée Juan Salas 23.11.2012 - 23:25
-3

Vous devez enregistrer votre CPT avec:

'hierachical' => true
    
réponse donnée ungestaltbar 29.02.2012 - 21:22

Lire d'autres questions sur les étiquettes