WordPress の記事ページに表示される「カテゴリー」「タグ」「投稿日」などを非表示にする。

個別記事の下部に、以下のような表示があると思いますが、この部分をカスタマイズします。

カテゴリー:xxxx | タグ: xxxx | 投稿日: yyyy/mm/dd |

(そもそも「投稿者」が非表示になっていますが、何で非表示にしたのか覚えてない、、プラグインの影響だろうか。)

ちなみに、ワードプレスのテーマは Twenty Twelve(WordPress 3.5.1)です。

全部消したい場合 entry-meta 部分を削除する

割と簡単な方法のひとつとして、content.php の以下の部分をコメントアウトするなり、削除してしまえば「タグ」や「投稿日」の部分を非表示にすることができます。

<footer class="entry-meta">
	<?php twentytwelve_entry_meta(); ?>
	<?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
	<?php if ( is_singular() && get_the_author_meta( 'description' ) && is_multi_author() ) : // If a user has filled out their description and this is a multi-author blog, show a bio on their entries. ?>
		<div class="author-info">
			<div class="author-avatar">
				<?php echo get_avatar( get_the_author_meta( 'user_email' ), apply_filters( 'twentytwelve_author_bio_avatar_size', 68 ) ); ?>
			</div><!-- .author-avatar -->
			<div class="author-description">
				<h2><?php printf( __( 'About %s', 'twentytwelve' ), get_the_author() ); ?></h2>
				<p><?php the_author_meta( 'description' ); ?></p>
				<div class="author-link">
					<a href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>" rel="author">
						<?php printf( __( 'View all posts by %s <span class="meta-nav">&rarr;</span>', 'twentytwelve' ), get_the_author() ); ?>
					</a>
				</div><!-- .author-link	-->
			</div><!-- .author-description -->
		</div><!-- .author-info -->
	<?php endif; ?>
</footer><!-- .entry-meta -->

上記を他のところに記述すれば、表示位置を変更することもできます。

他に、CSSで非表示にするという手法も紹介されていました。
(テーマのバージョンが古いやつでしたが。)

表示されている一部だけを非表示したい。例えばカテゴリーを非表示に。

個人的に、カテゴリーはデフォルトで存在していた「未分類」しか使わない予定なので、表示しておいてもあまり意味が無いということで、カテゴリの表示を消したいと思います。

content.php で使われている twentytwelve_entry_meta()関数 の定義が functions.php ファイルに記載されているようで、そこをいじります。

if ( ! function_exists( 'twentytwelve_entry_meta' ) ) :
/**
 * Prints HTML with meta information for current post: categories, tags, permalink, author, and date.
 *
 * Create your own twentytwelve_entry_meta() to override in a child theme.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_entry_meta() {
	// Translators: used between list items, there is a space after the comma.
	$categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) );

	// Translators: used between list items, there is a space after the comma.
	$tag_list = get_the_tag_list( '', __( ', ', 'twentytwelve' ) );

	$date = sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a>',
		esc_url( get_permalink() ),
		esc_attr( get_the_time() ),
		esc_attr( get_the_date( 'c' ) ),
		esc_html( get_the_date() )
	);

	$author = sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
		esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
		esc_attr( sprintf( __( 'View all posts by %s', 'twentytwelve' ), get_the_author() ) ),
		get_the_author()
	);

	// Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's name.
	if ( $tag_list ) {
		$utility_text = __( 'This entry was posted in %1$s and tagged %2$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
	} elseif ( $categories_list ) {
		$utility_text = __( 'This entry was posted in %1$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
	} else {
		$utility_text = __( 'This entry was posted on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
	}

	printf(
		$utility_text,
		$categories_list,
		$tag_list,
		$date,
		$author
	);
}
endif;

①$categories_list、$tag_list、$date、$authorで、記事のカテゴリー、タグ、投稿日、投稿者の情報を得ます。

②変数をもとにif条件分岐をします。
最初は、$tag_listに値があれば実行して、次に$tag_listがなくて$category_listがあれば実行して、最後に$tag_listも$category_listも無いとき実行します。
実行結果は、$utility_text変数に代入されます。

③printf関数で、情報を出力します。
printf関数の第1引数は、出力フォーマット($utility_text)になり、その後の引数の順番を変えれば表示も変ります。

リスト取得をしない

まず

$categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) );

をコメントアウトしてカテゴリーリストを取得しないようにします。
すると

カテゴリー: | タグ: xxxx | 投稿日: yyyy/mm/dd |

という表示になります。

カテゴリーリストを取得しない時の表示を調整する

下記の部分でリストの取得状況に応じて表示を調整しているのですが、 categories_list 取得をしないようにしたので、書き換えます。

// Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's name.
if ( $tag_list ) {
    $utility_text = __( 'This entry was posted in %1$s and tagged %2$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
} elseif ( $categories_list ) {
    $utility_text = __( 'This entry was posted in %1$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
} else {
    $utility_text = __( 'This entry was posted on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
}

を以下な感じに。
tagged とか This entry was posted on の部分などは日本語に書き換えてます。

// Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's name.
if ( $tag_list ) {
    $utility_text = __( 'タグ: %2$s|投稿日: %3$s<span class="by-author"> by %4$s</span>', 'twentytwelve' );
} else {
    $utility_text = __( '投稿日: %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
}

こうすると

タグ: xxxx|投稿日: 2013/04/26

になります。めでたし。

参考サイト

1コメント
  1. Miki

    こんにちは!Mikiと申します。
    twentytwelve使っているのですが、逆にメタ情報にコメントを表示させたいのですがどうすればよいのでしょうか?
    今僕のブログでは、カテゴリーと投稿日しか表示されてません・・・
    初歩的で申し訳ありませんが、ご教授ください!

コメントを残す

  • コメント欄には個人情報を入力しないようにしてください。

  • 入力いただいたメールアドレスは公開されませんがサーバーに保存されます。
  • 入力いただいた情報の他に、IPアドレスを取得させていただきます。取得した IPアドレス はスパム・荒らしコメント対処ために利用され、公開することはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください