WordPressのカスタム投稿タイプ一覧・詳細ページに管理画面でチェックを入れたカテゴリーを表示するソースコード

はじめに

WordPressのカスタム投稿タイプの一覧ページや詳細ページをコーディングしているときに、管理画面でチェックを入れたカテゴリーを表示させたいと思うことはありませんか?

今回はそのためのソースコードをご紹介します。

カスタム投稿タイプの管理画面でチェックを入れたカテゴリーを表示するソースコード

<?php
$post_type = get_post_type();
$tax = get_object_taxonomies($post_type);
if(isset($tax[0])) {
    $terms = get_the_terms(get_the_ID(), $tax[0]);
    if($terms) {
        echo '<div class="case-cat__list">';
        foreach ($terms as $term) {
            echo '<a class="case-cat__item" href="' . get_term_link($term) . '"><span>' . $term->name . '</span></a>';
        }
        echo '</div>';
    }
}

PR

カスタム投稿タイプの管理画面でチェックを入れたカテゴリーを表示するソースコードの解説

get_post_type関数

WordPressで現在の投稿またはページの投稿タイプを取得するためのWordPressの関数です。

$post_type = ‘カスタム投稿タイプ名’;としても大丈夫ですが、

$post_type = get_post_type();としておけば、カスタム投稿タイプ名が変わっても対応ができます。

get_post_type関数のvar_dumpの出力

string(4) "カスタム投稿タイプ名"

get_object_taxonomies関数

WordPressの投稿タイプやカスタム投稿タイプに関連付けられたタクソノミー(taxonomy)を取得するためのWordPressの関数です。

get_object_taxonomies関数のvar_dumpの出力

array(1) { [0]=> string(8) "get_post_typeで取得した投稿タイプのタクソノミー名" }

if文の部分の解説

下記記事で紹介している「Notice: Undefined offset: 0 inエラー」が表示されないようにするためにif文を追加しています。

Noticeエラーはwp-config.phpでdefine( ‘WP_DEBUG’, true );の「true」の部分を「false」にしておけば表示されないエラーではありますが、「true」にしていてもエラーが表示されない方が当然良いですよね。

undefinedエラー

Notice: Undefined offset: 0 inエラーの発生原因と対処した方法について記事にしています。

get_the_terms関数

WordPressの関数で、指定された投稿に関連付けられているタームを取得するために使用されます。

似た関数で「get_terms関数」がありますが、管理画面でチェックを入れたカテゴリーは記事ごとに違うので、記事ごとで違うものを出力したい時は「get_the_terms関数」を使用するのが適切です。

「get_terms関数」と「get_the_terms関数」の違いは下記記事で解説しています。

get_terms

WordPressの「get_terms関数」と「get_the_terms関数」の違いについて解説しています。

get_term_link関数

指定された(タクソノミー)タームのアーカイブページへのパーマリンクを返します。上記のget_the_terms関数で取得したタームを引数に指定することで、記事のパーマリンクを出力することができます。

まとめ

カスタム投稿タイプの一覧ページや詳細ページに、管理画面でチェックを入れたカテゴリーを表示するためのソースコードを紹介しました。コピペで使用できるものになります。cssはご自身の環境に合わせていただければと思います。

>お問い合わせはこちら

お問い合わせはこちら