Twenty Twenty-Oneテンプレートにて、カスタム投稿で「twenty_twenty_one_entry_meta_footer()」を読み込んではいるけどカテゴリーや更新日が表示されない🤔
「twenty_twenty_one_entry_meta_footer()」は「template-tags.php」を呼び出している🤔🤔
ゆえに「template-tags.php」を調整。
まずは下記のようにコメントアウト。
function twenty_twenty_one_entry_meta_footer() {
// Early exit if not a post.
//if ( 'post' !== get_post_type() ) {
// return;
//}ifの次に下記elseifを追加してカスタム投稿時(今回は「event」)の表示を記述。
なおカスタム投稿のカテゴリーはカスタムタクソノミーなのでcategoryでなくtermで取得・表示となる。ざっくり。
classを充てるのは任意。
} elseif ( is_singular('event') ) {
echo '<div class="posted-by">';
// Posted on.
twenty_twenty_one_posted_on();
// Posted by.
twenty_twenty_one_posted_by();
// Edit post link.
edit_post_link(
sprintf(
/* translators: %s: Post title. Only visible to screen readers. */
esc_html__( 'Edit %s', 'twentytwentyone' ),
'<span class="screen-reader-text">' . get_the_title() . '</span>'
),
'<span class="edit-link">',
'</span>'
);
echo '</div>';
//ここからは書き換え(今回は「event_cat」というタクソノミー(カテゴリー)名)
if ( has_term( '', 'event_cat') ) {
echo '<div class="post-taxonomies">';
//ループ外なのでグローバル関数($post)でIDを取得
global $post;
$post_id = $post->ID;
//投稿ページのタームを取得し出力していく
$terms = get_the_terms( $post->ID, 'event_cat' );
//classを充てるためタームのスラッグを表示しつつ、タームをリンク付きで表示
if ( $terms ) {
foreach ( $terms as $term ) {
echo '<span class="cat-links ' . $term->slug . '"><a href="'. get_term_link( $term->slug, 'event_cat' ). '">' . $term->name.'</a></span>';
}
}
echo '</div>';
//ここまで
}ビールファン

【WordPress】複数のタクソノミーで何かしらのタームに属しているときの条件分岐 |...
WordPressのカスタム投稿タイプで任意のタームが設定されている記事を判定するコードを紹介します。サブループ内での話です。アーカイブページかどうかを条件分岐したい場合はis_tax()が使用できます。 また複数のタクソノミーがある場合に
上記参考記事を抜粋しつつ書き換えると
「has_termの第一引数を空にすることで第二引数で指定したタクソノミー(event_cat)のいずれかのタームに属する記事かどうかを判定。」
ちなみに「twenty_twenty_one_entry_meta_footer()」を引っぱってこずに表示させることもできる。
下記は投稿日表示+timeタグで投稿日時と、スラッグ名class出力付きカテゴリー表示(力尽きてる)。
<div class="entry-content-header">
<div class="posted-by">
<span class="posted-on">
<time class="entry-date published updated" datetime="<?php echo get_the_date('Y-m-d') ?>T<?php echo get_the_time('H:i:s') ?>"><?php the_date() ?></time>
</span>
</div>
<div class="post-taxonomies">
<span class="cat-links <?php get_the_category()[0]->category_nicename ?>">
<!-- カテゴリー表示の記述 -->
</span>
</div>
</div>おまけ:投稿者アーカイブページを無効にするとき、「Notice: Undefined index」エラーが出るときは参考サイトをベースに4行目の!empty追加で上手くいった。
//投稿者アーカイブページを無効にする
add_filter ( 'author_rewrite_rules', '__return_empty_array' ) ;
function disable_author_archive() {
if ( !empty($_GET['author']) || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ) {
wp_redirect( home_url( '/404.php' ) );
exit;
}
}
add_action ('init', 'disable_author_archive') ;
