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>';
			//ここまで
			}

上記参考記事を抜粋しつつ書き換えると
「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') ;

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です