it-swarm.dev

Jak zobrazit vlastní meta box na obrazovce "Quick Edit"?

Použil jsem add_meta_box () k přidání vlastního meta boxu do editačního okna WordPressu na obou stránkách a příspěvcích.

Jak mohu tento meta box zobrazit také na obrazovce "Quick Edit"?

V ideálním případě bych rád, aby se objevil napravo od selektoru Kategorie.

23
Scott B

Zdá se, že žádný jednoduchý způsob, jak to udělat, musíte přidat celý kód sami. inline_edit_row() , funkce, která kreslí obrazovky Rychlé úpravy a Hromadné úpravy, má zřejmě pouze jednu akci, do které můžete vložit: quick_edit_custom_box NEBO bulk_edit_custom_box . To se nazývá pro všechny non-core sloupce, které wp_manage_posts_columns() return. Existuje několik filtrů, pomocí kterých můžete přidat sloupec, například manage_posts_columns. Tato funkce bohužel definuje záhlaví sloupců tabulky příspěvků, abyste ji měli znovu odstranit před print_column_headers() prints. To lze provést ve funkci get_column_headers() s filtrem manage_[screen_id]_headers . edit-post je ID obrazovky obrazovky Upravit příspěvky.

To vše dohromady dává hacku jako je například následující kód. Zjištění, kde můžete zpracovat formulář, je (v současné době) ponecháno jako cvičení pro čtenáře.

// 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