問題描述
我已經使用 add_meta_box() 在 WordPress 編輯視窗的兩個頁面和帖子上新增一個自定義元框。
如何使這個元框也顯示在”Quick Edit” 螢幕上?
理想情況下,我希望它出現在 「類別」 選擇器的右側。
最佳解決方案
似乎沒有簡單的方法來做到這一點,你必須自己新增所有程式碼。繪製 「快速編輯」 和 「批次編輯」 螢幕的功能 inline_edit_row()似乎只有一個可以掛接到的操作:quick_edit_custom_box 或 bulk_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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。