web-dev-qa-db-fra.com

Ajout de menu_order à la page d’administration du CPT

J'ai un type de message personnalisé (cpt_roundtable) et j'essaie d'ajouter une colonne à la page d'administration affichant le menu_order pour chaque entrée. Ceci est dans mon fichier functions.php.

function set_roundtable_columns($columns) {
    return array(
        'cb' => '<input type="checkbox" />',
        'title' => __('Title'),
        'taxonomy-sessions' => __('Session'),
        'menu_order' => __('Order'),
        'date' => __('Date'),
    );
}
add_filter('manage_cpt_roundtable_posts_columns' , 'set_roundtable_columns');

Cela fonctionne parfaitement sauf que la colonne "Ordre" ne se remplit pas. Je suppose que le nom du terme est incorrect pour ce champ (?)

Dois-je écrire une fonction pour remplir cette colonne même s'il ne s'agit pas d'un champ personnalisé?

2
Diana Nichols

Oui, vous devez écrire du code pour le remplir. Ceci n'est pas testé mais devrait fonctionner.

add_filter('manage_edit-cpt_roundtable_columns', 'init_roundtable_custom_columns');

function init_roundtable_custom_columns($columns)
{
    return array(
        'cb' => '<input type="checkbox" />',
        'title' => __('Title'),
        'taxonomy-sessions' => __('Session'),
        'menu_order' => __('Order'),
        'date' => __('Date'),
    );
}

add_action('manage_cpt_roundtable_posts_custom_column', 'manage_roundtable_custom_columns', 10, 2);

function manage_roundtable_custom_columns($column, $post_id)
{
    $the_post = get_post($id);

    switch ($column)
    {
        case 'menu_order' :

            echo $the_post->menu_order;
            break;
    }
}
2
Arjay