WordPress
カスタマイズ事例

WORDPRESS CUSTOMIZATION

カテゴリやタームを追加したら、同名のスラッグで固定ページも追加する

今回は少しマニアックな事例のご紹介です。
「カテゴリやタームを追加したら、同名のスラッグで固定ページも追加する」
ということなんですが、どういうシーンで必要になるかというと、たとえばこんな風に自社ホームページを運用している会社があったとします。

===
会社のホームページをWordPressで運用しています。
ホームページ上で、社員にいろんなジャンルでブログを書いてもらっています。
社員ごとに社員紹介ページもあります。
その社員紹介ページでは、その社員が書いたブログの一覧やその他自己紹介文などを掲載しています。
新入社員が入ると、サイトの追加作業として、社員カテゴリーを追加して、社員紹介ページとして固定ページを追加しています。
注意点としては、固定ページで自動で該当社員のブログを出力するために、固定ページと社員カテゴリーのスラッグは同じにする必要があります。
===

といった運用ルール。--で、最後の行の「注意点」を自動化しようとするとき。

現場感ありありのなかなかマニアックなケースではありますが。。
でも他にも、商品やサービスごとに固定ページがあって、なおかつ商品ごとにお知らせカテゴリを分けているとか、似たケースはたまに出てくるんじゃないかと思います。
 
—あんまりないけど、とにかく、「カテゴリやタームを追加したら、同名のスラッグで固定ページも追加する」方法です。

テーマの functions.php に以下を追記。
カテゴリー追加のケースと、タクソノミー「member」のターム追加のケースを両方書きます。

function create_member_after_create_category ( $term_id ) {
	//カテゴリー取得
	$term = get_category( $term_id );
	//ターム取得ならこっち
	//$term = get_term( $term_id, 'member' );
	$term_slug   = $term->slug;
	$term_name   = $term->name;
	$menu_order = date( "ymd" );
	$parent_id  = wp_insert_post( [
		'post_type'   => 'page',
		'post_status' => 'publish',
		'post_title'  => $term_name . 'のページ',
		'post_name'   => $term_slug,
		'menu_order'  => $menu_order
	], true );
}
add_action( 'create_category', 'create_member_after_create_category', 10 );
//タクソノミー「member」のターム追加の場合はこっち
//add_action( 'create_member', 'create_member_after_create_category', 10 );

 
テーマを販売しようとするなら、こういう小さなところの自動化も必要かもしれませんね。

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!