私はadd_meta_box()を使ってWordPress編集ウィンドウにページと投稿の両方でカスタムメタボックスを追加しました。
このメタボックスを[クイック編集]画面にも表示するにはどうすればよいですか。
理想的には、カテゴリセレクタのすぐ右側に表示するようにします。
これを行う簡単な方法はないようです、あなたはあなた自身ですべてのコードを追加しなければなりません。 inline_edit_row()
、クイック編集および一括編集画面を描画する関数には、フックできるアクションが1つしかないようです: quick_edit_custom_box
またはbulk_edit_custom_box
。 wp_manage_posts_columns()
が返すコア以外のすべてのカラムに対して呼び出されます。 manage_posts_columns
のように、列を追加するために使用できるフィルタがいくつかあります。残念なことに、この関数はpostテーブルのカラムヘッダを定義しているので、 print_column_headers()
を出力する前にそれを削除するべきです。これはget_column_headers()
関数内で manage_[screen_id]_headers
filter を使って実行できます。 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';
}
}