web-dev-qa-db-fra.com

Comment afficher une méta-boîte personnalisée sur l'écran "Edition rapide"?

J'ai utilisé add_meta_box () pour ajouter une méta-boîte personnalisée à la fenêtre d'édition de WordPress sur les pages et les publications.

Comment puis-je faire en sorte que cette méta-boîte apparaisse également sur l'écran "Edition rapide"?

Idéalement, j'aimerais qu'il apparaisse juste à droite du sélecteur de catégories.

23
Scott B

Il semble n'y avoir aucun moyen facile de faire cela, vous devez ajouter tout le code vous-même. inline_edit_row() , la fonction qui dessine les écrans Quick Edit et Bulk Edit, semble ne comporter qu'une seule action à laquelle vous pouvez vous connecter: quick_edit_custom_box OU bulk_edit_custom_box . Il est appelé pour toutes les colonnes non essentielles que wp_manage_posts_columns() renvoie. Vous pouvez utiliser certains filtres pour ajouter une colonne, par exemple manage_posts_columns. Malheureusement, cette fonction définit les en-têtes de colonne de la table post. Vous devez donc le supprimer à nouveau avant que print_column_headers() les imprime. Cela peut être fait dans la fonction get_column_headers(), avec le filtre manage_[screen_id]_headers . edit-post est l'identifiant de l'écran Modifier les messages.

Tous ensemble, cela donne un hack semblable au suivant pour ajouter du code. Trouver où vous pouvez gérer la soumission du formulaire est (actuellement) laissé comme exercice au lecteur.

// Add a dummy column for the `posts` post type    
add_filter('manage_posts_columns', 'add_dummy_column', 10, 2);
function add_dummy_column($posts_columns, $post_type)
{
    $posts_columns['dummy'] = 'Dummy column';
    return $posts_columns;
}
// But remove it again on the edit screen (other screens to?)
add_filter('manage_edit-post_columns', 'remove_dummy_column');
function remove_dummy_column($posts_columns)
{
    unset($posts_columns['dummy']);
    return $posts_columns;
}

// Add our text to the quick edit box
add_action('quick_edit_custom_box', 'on_quick_edit_custom_box', 10, 2);
function on_quick_edit_custom_box($column_name, $post_type)
{
    if ('dummy' == $column_name) {
        echo 'Extra content in the quick edit box';
    }
}

// Add our text to the bulk edit box
add_action('bulk_edit_custom_box', 'on_bulk_edit_custom_box', 10, 2);
function on_bulk_edit_custom_box($column_name, $post_type)
{
    if ('dummy' == $column_name) {
        echo 'Extra content in the bulk edit box';
    }
}
22
Jan Fabry