問題描述

我已經使用 add_meta_box() 在 WordPress 編輯窗口的兩個頁面和帖子上添加一個自定義元框。

如何使這個元框也顯示在”Quick Edit” 屏幕上?

理想情況下,我希望它出現在 「類別」 選擇器的右側。

最佳解決方案

似乎沒有簡單的方法來做到這一點,你必須自己添加所有代碼。繪製 「快速編輯」 和 「批量編輯」 屏幕的功能 inline_edit_row()似乎只有一個可以掛接到的操作:quick_edit_custom_boxbulk_edit_custom_box 。它被稱為 wp_manage_posts_columns()返回的所有 non-core 列。有一些可用於添加列的過濾器,例如 manage_posts_columns 。不幸的是,此函數定義了表格的列標題,因此您應該在 print_column_headers()打印之前再次刪除它。這可以在 get_column_headers()功能中使用 manage_[screen_id]_headers 濾波器完成。 edit-post 是編輯帖子屏幕的屏幕 ID 。

所有這一切,這給了一個像下面的黑客添加一些代碼。找出可以處理表單提交的位置 (目前) 作為練習留給讀者。

// 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';
    }
}

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。