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' $post
objet (merci à @brady de me l'avoir rappelé).
Le post 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é soit appelé header_text
, voici les fonctions et les raccords 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');
Rendre les valeurs de la 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éfinir la colonne pour être triable
/**
* 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');
Cela fait trop longtemps, mais juste pour l'enregistrement, vous pouvez afficher l'option 'ordre du menu' dans l'admin, en incluant simplement 'attributs de page' dans le tableau d'options 'prend en charge'. Par exemple:
la source
Vous devez enregistrer votre CPT auprès de:
la source