CocoonではPHPの構造としてネストしているから、single.phpを改造するだけだとダメ。まずは親テーマの中のsingle.phpを複製し、子テーマの中に置き、single-カスタム投稿タイプの名前.phpというファイル名に変え、中身の以下の部分を編集する。これでカスタム投稿タイプ用に動作を分けることになる。
<?php //投稿ページ内容
cocoon_template_part('tmp/single-contents-カスタム投稿タイプの名前'); ?>
その後、tmpというフォルダを子テーマの中に作り、親テーマのsingle-contents.phpを複製し、子テーマのtmpフォルダの中に置き、single-contents-カスタム投稿タイプの名前.phpという名前にし、中身の以下の部分を編集する。これもカスタム投稿タイプ用に動作を分ける仕組みの一つ。
<?php //本文テンプレート
cocoon_template_part('tmp/content-カスタム投稿タイプの名前') ?>
その後、親テーマのcontent.phpを複製し、子テーマのtmpフォルダの中に置き、content-カスタム投稿タイプの名前.phpという名前にし、以下の部分を任意の場所に追加する。
<?php //本文下のカスタムタクソノミーカテゴリー・タグ
$post_type = get_post_type();
$taxonomies = get_object_taxonomies($post_type, 'objects');
$has_terms = false;
if (!empty($taxonomies)) {
foreach ($taxonomies as $taxonomy) {
$terms = get_the_terms(get_the_ID(), $taxonomy->name);
if ($terms && !is_wp_error($terms)) {
$has_terms = true;
// タクソノミーの名称を表示
echo '<h3>' . esc_html($taxonomy->label) . '</h3>';
echo '<ul>';
foreach ($terms as $term) {
$term_link = get_term_link($term);
if (!is_wp_error($term_link)) {
echo '<li><a href="' . esc_url($term_link) . '">' . esc_html($term->name) . '</a></li>';
} else {
echo '<li>' . esc_html($term->name) . '</li>';
}
}
echo '</ul>';
}
}
}
?>
ちなみに私は上記のコードを以下のコードの真下に置くことにした。
<?php //本文下のカテゴリー・タグ
if (is_category_tag_display_position_content_bottom() && is_single()) {
cocoon_template_part('tmp/categories-tags');
} ?>
コメント