WordPressでカスタムポストタイプのブログや投稿タグボックスを追加する

Last Updated:2023年07月16日| | コメントを残す

カテゴリとポストのタグボックスは WordPressに既に登録されている内蔵メタボックスです。 これらの機能を基本文(ポスト)やページだけでなく、カスタムポストタイプ(ユーザー定義文のタイプ)にも使用することができます。 新しいカスタムポストタイプを登録するとき register_post_type() の分類(Taxonomy)引数を使用して、簡単にカテゴリと記事のタグボックスを追加することができます。

次の例では、「demo」という新しい記事タイプをカテゴリと記事タグボックスとともに登録します。

add_action('init', 'demo_register_post_type');

function demo_register_post_type() {
register_post_type('demo', array(
'labels' => array(
'name' => 'Demos',
'singular_name' => 'Demo',
'add_new' => 'Add new demo',
'edit_item' => 'Edit demo',
'new_item' => 'New demo',
'view_item' => 'View demo',
'search_items' => 'Search demos',
'not_found' => 'No demos found',
'not_found_in_trash' => 'No demos found in Trash'
),
'public' => true,
'supports' => array(
'title',
'excerpt'
),
'taxonomies' => array('category', 'post_tag') // 중요함
));
}
// Source: Adding Categories And Post Tags Boxes For Custom Post Type In WordPress

上記のコードを使用している関数ファイルに追加すると、管理者ページの左側のパネルに、Demoポストタイプが「カテゴリ」と「タグ」と共に追加されていることを確認できます。 (必ずチャイルドテーマを作成してチャイルドテーマ内の関数ファイルに追加してください。」ワンクリックで簡単にチャイルドテーマを作成する「注)

Demoポストタイプ

上記のコードで 'taxonomies' => array('category', 'post_tag') 行を削除すると、Demosの下に「カテゴリ」と「タグ」は表示されません。

ブログにカスタムポストタイプが既に登録されている場合、カテゴリとポストのタグボックスを追加するには、 register_post_type() 関数を追加すると、されています。 しかし、ソースを変更する代わりに、次のように register_taxonomy_for_object_type() 関数(参照)を使用することができます。

add_action('init', 'demo_add_default_boxes');

function demo_add_default_boxes() {
register_taxonomy_for_object_type('category', 'demo');
register_taxonomy_for_object_type('post_tag', 'demo');
}

上記の方法の代わりに Add Tags And Category To Page and Post Typesのようなプラグインを使用することもできます。

このプラグインを使ってテストしてみると、個々の記事を作成する画面に「タグ」と「カテゴリ」ボックスが追加されますが、上の図のようにメニューには追加されませんね。 (つまり、上記の場合、Demoの下には「カテゴリ」と「タグ」メニューが含まれていますが、プラグインを使用すると「カテゴリ」と「タグ」メニューは表示されません。)

メモ:


コメントを残す

コメント