【WordPress】 TwentyTwelve 記事下のカテゴリー・投稿者などのメタ情報を消す

現在作っているサイトには、記事下の投稿日・投稿者・タグ・カテゴリーのメタ情報は必要ありません。

このメタ情報を全部消してしまいましょう。

今回も子テーマで対応します。

delete_entry_meta_02b

スポンサーリンク

1.どこでメタ情報を生成しているのでしょうか

親テーマのfunctions.phpで定義している「twentytwelve_entry_meta()」という関数です。

function twentytwelve_entry_meta() {
(処理)

以前調べたようにfunctions.phpは子テーマ → 親テーマの順で読み込まれ、同じ名前の関数は定義できない仕組みでした。

このため「add_action」というアクションフックを使って割り込み、別の関数で定義済みの内容を変更するというややこしい処理が必要となります。

【参考】
【WordPress】 子テーマを使ったカスタマイズについて(functions.php編)

しかし、よくよく見てみると今回変更したい「twentytwelve_entry_meta()」は上記のルールから外れた「例外」に該当しています。
具体的には、子テーマで同じ名前の関数を定義した場合、子テーマが優先されてエラーも出ないというものです。

これはラッキーでした。

では子テーマに同じ名前の関数を定義して対応したいと思います。

2.実際にやってみましょう

親テーマのfunctions.phpの該当箇所は以下の範囲

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
	);
}

整形後に出力するという内容ですが、今回は全部必要なさそうです。

このため子テーマに追加したコードはこれだけです。

function twentytwelve_entry_meta() {
}

中身が空っぽの関数です。
これを子テーマで定義することで親テーマ内の「function twentytwelve_entry_meta()」が機能しなくなるというわけです。

結果はこの通り。
全部消えました。

delete_entry_meta_03b

3.まとめ

今回は関数の中身を全部消してしまいましたが、「カテゴリーだけ表示したくない」などの細かいカスタマイズをする場合は、この関数を子テーマのfunctions.phpにコピーして変更していけばよいということです。

なおCSSで非表示にする方法もあります。
この場合は非表示にしているだけなので、ブラウザでコードを見ると内容が読めてしまいます。
それが気にならないのであればアリだと思います。


スポンサーリンク
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

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

CAPTCHA