皆さま引き続きコロナには気をつけてお過ごしください!

【WordPress】カスタム投稿へのタグ追加方法

アイキャッチカスタム投稿 WordPress


カスタム投稿の作り方、メニューへの反映の仕方等については以前にご紹介しました。

 

カスタム投稿で記事を作成していて気づいたことがあります。

にゃこ
あれ?カスタム投稿にタグ付けられない!?

 

デフォルトの投稿と、カスタム投稿一覧を見比べてみましょう。

デフォルトの投稿にはタグがある

タグあり

カスタム投稿にはタグがない

タグなし

ないですね。

 

今回は、カスタム投稿にもタグをつけてみたいと思います。

 

スポンサーリンク

カスタム投稿にタグをつけてみよう

今回もfunctions.phpを編集する必要があるため、

バックアップ取得したのちに、「Snippets」というプラグインを使って編集してみます。

 

タグづけの手順

①バックアップを取得する。(All-in-One WP Migrationプラグインを使用)

②Snippetsプラグインで、「Add New」ボタンをクリックする。

Snippets新規作成

③Snippetsの新規作成画面で以下を入力し、最後に「Save Changes」ボタンをクリックする。

スクリプト記入

項目名 設定内容 内容
タイトル (任意) Snippets一覧を見て、後から内容がわかるタイトル
Code 下記記載の内容 カスタム投稿にタグをつけるコード

※’カスタム投稿タイプ名’はご自身で作成されたカスタム投稿のスラッグ名

実行方法 Run snippets everywhere snippetsの実行方法。ここではすべてで実行するよう設定
Description (任意) snippetsに表示される内容。
Tags (任意)
add_action( 'init', function () {
    register_taxonomy( 'post_tag', [ 'post', 'カスタム投稿タイプ名' ],
        [
            'hierarchical' => false,
            'query_var' => 'tag',
        ]
    );
});
add_action('pre_get_posts', function ($query){
    if ( is_admin() && ! $query->is_main_query() ) {
        return;
    }
    if ( $query->is_category() || $query->is_tag() ) {
        $query->set('post_type', ['post','カスタム投稿タイプ名']);
    }
});

 

④画面上部に「Snippet added.」と表示されたことを確認する。

⑤左ペインで「All Snippets」をクリックする。

AllSnippets

⑥一覧から作成したSnippetをActivateにする。

有効化

⑦有効化されたことを確認する。

有効化後

⑧タグ設定したカスタム投稿で、「新規追加」をクリックする。

⑨画面右側にタグ入力ウィジェットが追加されていることを確認する。

タグ追加完成

 

スポンサーリンク

カスタム投稿一覧にタグを表示してみよう

上述の方法では、カスタム投稿の作成画面にタグ入力欄を作ることができましたが、

これだけでは、投稿一覧画面にはタグは表示されません。

 

続いて、デフォルトの投稿一覧画面と同様、

カスタム投稿一覧にもタグが表示されるようにしたいと思います。

 

カスタム投稿一覧へのタグ追加手順

①Snippetsプラグインで、「Add New」ボタンをクリックする。

②Snippetsの新規作成画面で以下を入力し、最後に「Save Changes」ボタンをクリックする。

項目名 設定内容 内容
タイトル (任意) Snippets一覧を見て、後から内容がわかるタイトル
Code 下記記載の内容 カスタム投稿一覧にタグを表示させるコード

※カスタム投稿タイプ名はご自身で作成されたカスタム投稿のスラッグ名

実行方法 Run snippets everywhere snippetsの実行方法。ここではすべてで実行するよう設定
Description (任意) snippetsに表示される内容。
Tags (任意)
function add_tag_post_column_title( $columns ) {
    $columns[ 'slug' ] = "タグ";
    return $columns;
}
function add_tag_post_column( $column_name, $post_id ) {
    if( $column_name == 'slug' ) {
        $tags = get_the_tags();
        if($tags){
            foreach ( $tags as $tag ) {
                echo $tag->name .' ';
            }
        }
    }
}
add_filter( 'manage_カスタム投稿タイプ名_posts_columns', 'add_tag_post_column_title' );
add_action( 'manage_カスタム投稿タイプ名_posts_custom_column', 'add_tag_post_column', 10, 2 );

 

④画面上部に「Snippet added.」と表示されたことを確認する。

⑤左ペインで「All Snippets」をクリックする。

⑥一覧から作成したSnippetをActivateにする。

⑦有効化されたことを確認する。

⑧タグ設定したカスタム投稿の一覧を開く。

⑨タグが追加されたことを確認する。

一覧へのタグ追加完了

 

スポンサーリンク

まとめ

タグは追加できましたか?

今回の方法では、作成したカスタム投稿ごとにsnippetsを作る必要があります。

 

1つ作れば他にも展開できる方法があるはずですが、

それはわかったら記載したいと思います。

 

タイトルとURLをコピーしました