wordpressの固定ページでタグを表示する(さらにタグアーカイブで表示する)方法2つ

wordpressでは通常、固定ページではタグが表示されません。
固定ページでもタグ表示をさせるには、functionsに下記を追加します。

//固定ページにタグを設定
 function add_tag_to_page() {
 register_taxonomy_for_object_type('post_tag', 'page');}
add_action('init', 'add_tag_to_page');

//タグアーカイブに固定ページを含める
function add_page_to_tag_archive( $obj ) {
	if ( is_tag() ) {
		$obj->query_vars['post_type'] = array( 'post', 'page' );
	}
}
add_action( 'pre_get_posts', 'add_page_to_tag_archive' );

参考:かちびと.net

しかし私の場合、このコードではなぜがページのトップメニューの表示がおかしくなります。

使っているテーマにもよると思いますが・・・。
いろいろ確認してみたのですが、なかなか解決せず。

さらに他にも調べてみると、英語のサイトで見つけたコードで解決しました。

//固定ページにタグを設定
 function add_tag_to_page() {
 register_taxonomy_for_object_type('post_tag', 'page');}
add_action('init', 'add_tag_to_page');

// タグアーカイブに固定ページを含める
function tags_archives($wp_query) {
	if ( $wp_query->get('tag') )
		$wp_query->set('post_type', 'any');}
add_action('pre_get_posts', 'tags_archives');

参考:WordPress › Support » Tags for Pages

固定ページにタグを設定するコードは同じですが、タグアーカイブに固定ページを含める際のpost_typeがanyになっています。

最初のコードでエラーが出たり、表示がおかしくなるなどの場合は、こちらを試してみるといいかもしれません。

Leave a Comment.