ど素人から毛を生やす。<延>

カスタム投稿のURLを変更する方法

Web > WordPress > カスタム投稿 2014年12月11日(最終更新:10年以上前)

2014年12月11日に作成されたページです。
情報が古かったり、僕が今以上のど素人だった頃の記事だったりする可能性があります。

どもです。

今回はちょっと大きなサイトの製作。
しかも珍しく、コーディング、WordPress積み、all僕なので否応でも気合が入るというもの。

で、そのサイトは静的とWordPressがごっちゃになっている上に、「○○ブログ」が2種類あるのだけれど、URLは「ドメイン/blog/カスタム投稿名…」になっているのが理想なのだそうで。

さて、いつもならともかく、ここで妥協する理由はないな(゚∀゚)

 

まずは本体(タクソノミーでない)のURLを変えるお!

カスタム投稿タイプをfunctions.phpで宣言するときの命令文ちょっと変えるだけ。


add_action( 'init', 'create_post_type' );
function create_post_type() {
	register_post_type('カスタム投稿名(半角)',
		array(
			(~中略~)
			'rewrite' => true,
			(~中略~)
			)
		)
	);
}

この'rewrite' => true,の部分を…


'rewrite' => array('slug' => '変更したいURL(/で区切って多階層にしてもOK)'),

これだけでおkです。
ページ送り等も問題なし。

 

そしてタクソノミーのURLも変えるお!

カスタム投稿の場合、カテゴリーやタグの設定をしているときは、そちらを別途指示しなければなりません。


	register_taxonomy(
		'タクソノミー名',
		'カスタム投稿タイプ名',
		array(
			'hierarchical' => true,
			'label' => 'カテゴリー',
			'show_ui' => true,
			'query_var' => true,
			'rewrite' => array( 'slug' => '変更したいURL(/で区切って多階層にしてもOK)' ),
			'singular_label' => 'カテゴリー'
		)
	);
}

やることはカスタム投稿タイプのときと同じ。

タクソノミーのスラッグととカスタム投稿タイプのスラッグを同じにする場合、いつものページ送り対策をお忘れなく。


add_rewrite_rule('変更後のスラッグ/([^/]+)/page/([0-9]+)/?$', 'index.php?タクソノミー名=$matches[1]&paged=$matches[2]', 'top');
この記事は役に立ちましたか?
  • (`・ω・´) 役に立った (0)
  • (・∀・) 参考になった (1)
  • _(:3」∠)_ 面白かった (1)