WordPressでカスタム投稿の時に表示するタグをよく忘れるので、自分への備忘録も兼ねてご紹介します。
投稿タイプの追加
前提として、functions.phpに以下の記述をして投稿タイプ(カスタム投稿)を追加した場合を想定しています。
// 投稿タイプを追加
add_action('init', 'sample_custom_post_type');
function sample_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' => 'sample', 'with_front' => false),
'hierarchical' => false,
'menu_position' => 4,
'has_archive' => true,
'yarpp_support' => true,
'capability_type' => 'post',
'supports' => array(
'title',
'editor',
'thumbnail',
'excerpt',
'custom-fields'
)
);
register_post_type('sample', $args);
register_taxonomy(
'sample-cat',
array('sample'),
array(
'hierarchical' => true,
'update_count_callback' => '_update_post_term_count',
'label' => 'カテゴリー',
'singular_label' => 'カテゴリー',
'public' => true,
'show_ui' => true,
)
);
}
カスタムタクソノミーを出力
get_the_term_list();を使って表示
echo get_the_term_list( $id, $taxonomy, $before, $sep, $after );
「$id」は投稿のIDを指定します。
「$taxonomy」はカスタムタクソノミー名を記述します。
「$before」は指定した文字列が、カスタムタクソノミーの前に表示されます。
「$sep」複数のカスタムタクソノミーがあった場合、区切り文字として表示されます。
「$after」は指定した文字列が、カスタムタクソノミーの後に表示されます。
今回の設定したカスタムタクソノミーを簡単に表示する場合は、以下を出力するテンプレートに記述します。
echo get_the_term_list( $post->ID, 'sample-cat');
get_the_terms();を使って表示
「get_the_terms」を使って、投稿のカスタムタクソノミーの情報を取得します。
get_the_terms( $id, $taxonomy );
表示する時は、「$terms」の中を「foreach」を利用して出力させます。
if ($terms = get_the_terms($post->ID, 'sample-cat')) {
foreach ( $terms as $term ) {
echo $term->name;
}
}