こんにちは、nishi_talk(@nishi_talk)です。
WordPressでカスタム投稿を設定した時、カスタム投稿のカテゴリー名(タクソノミー)を取得して表示する方法をご紹介します。
カスタム投稿の設定
まずはカスタム投稿の設定です。
functions.phpに「メンバー」のカスタム投稿を作成します。
今回はこれを例にして進めていきます。
<?php
add_action('init', 'tmp_member_custom_post_type');
function tmp_member_custom_post_type() {
$labels = array(
'name' => 'メンバー',
'singular_name' => 'メンバー',
'add_new_item' => '新しいメンバーを追加',
'add_new' => '新規追加',
'new_item' => '新しいメンバー',
'view_item' => 'メンバーを表示',
'not_found' => 'メンバーはありません',
'not_found_in_trash' => 'ゴミ箱にメンバーはありません。',
'search_items' => 'メンバーを検索',
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => array('slug' => 'member', 'with_front' => false),
'hierarchical' => false,
'menu_position' => 5,
'has_archive' => true,
'yarpp_support' => true,
'capability_type' => 'post',
'supports' => array(
'title',
'editor',
'thumbnail',
'excerpt',
'custom-fields'
)
);
register_post_type('member', $args);
flush_rewrite_rules( true );
register_taxonomy(
'member-cat',
array('member'),
array(
'hierarchical' => true,
'update_count_callback' => '_update_post_term_count',
'label' => 'カテゴリー',
'singular_label' => 'カテゴリー',
'public' => true,
'show_ui' => true,
)
);
}
?>
カテゴリー名を表示
表示するテンプレートファイルにカテゴリー名を表示してきます。
今回はカテゴリー名(タクソノミー)とスラッグ名を表示する方法です。
カテゴリー名(タクソノミー)を表示
<?php
if ($terms = get_the_terms($post->ID, 'member-cat')) {
foreach ( $terms as $term ) {
echo ('<p>');
echo esc_html($term->name);
echo ('</p>');
}
}
?>
カテゴリー(タクソノミー)のスラッグを表示
<?php
if ($terms = get_the_terms($post->ID, 'member-cat')) {
foreach ( $terms as $term ) {
echo ('<p>');
echo esc_html($term->slug);
echo ('</p>');
}
}
?>
説明
カスタム投稿の「「member-cat」の箇所をタクソノミーを言います。
こちらは他と被らないような文字列を指定して下さい。
そのタクソノミーを下の箇所で指定すれば、投稿に紐付いているタクソノミー(カテゴリー)情報を取得できます。
if ($terms = get_the_terms($post->ID, 'タクソノミー名')) {
}
カテゴリー名で表示するかslug名で表示するかは以下の箇所で指定します。
// カテゴリー名を表示
$term->name
// スラッグ名を表示
$term->slug