wordpress カスタム投稿カテゴリタグ

【wordpress】カスタム投稿タイプにカテゴリ&タグ追加しアーカイブページで表示

2020.05.03 / 2020.11.19

カスタム投稿タイプにカテゴリ&タグの追加

functions.phpに下記を追加

function add_custom_post() {
register_post_type(
	'article',
		array(
			'label'=> '記事',
			'labels' => array(
			'menu_name' => '記事'
			),
		'public' => true,
		'query_var' => true,
		'hierarchical' => false,
		'rewrite' => array('slug' => 'article'),
		'has_archive' => true,
		'show_in_rest' => true,
		'supports' => array(
			'title',
			'editor',
			'thumbnail',
			'excerpt',
			'author'
			)
	)
);
register_taxonomy_for_object_type('category', 'article');
register_taxonomy_for_object_type('post_tag', 'article');
}
add_action('init', 'add_custom_post');

ポイントは下記のコード。

register_taxonomy_for_object_type('category', 'article');
register_taxonomy_for_object_type('post_tag', 'article');

これでカスタム投稿タイプにカテゴリ&タグが追加されます。

アーカイブページへの表示方法

下記はカテゴリ

function add_post_category_archive( $wp_query ) {
if ($wp_query->is_main_query() && $wp_query->is_category()) {
$wp_query->set( 'post_type', array('post','article'));
}
}
add_action( 'pre_get_posts', 'add_post_category_archive' , 10 , 1);

下記はタグ

function add_post_tag_archive( $wp_query ) {
if ($wp_query->is_main_query() && $wp_query->is_tag()) {
$wp_query->set( 'post_type', array('post','article'));
}
}
add_action( 'pre_get_posts', 'add_post_tag_archive' , 10 , 1);

ポイント

WordPressの本文のpやhタグにclassをつける
カスタムフィールド が空の場合の処理方法メモ
固定ページのスラッグを取得し、そのスラッグに応じて表示するテンプレートを変更する
メインループとサブループの表示
検索結果からページを除外
条件分岐によってページ毎に別デザインする方法
会員限定記事と一般公開記事にそれぞれ別のアイコンを設定
プラグインなしで絞り込み機能の設置