カスタム投稿タイプのwp-pagenaviの2ページ目以降が404になってしまうときの対処法メモ。

2016.01.26

2016.01.26

wordpressで構築作業をする際、カスタム投稿タイプを使用することがあると思いますが、コード上の記述は何度見直してもあっているはずなのに(今までの案件では動いていた)、wp-pagenaviプラグインを使用してページング処理を行う際、ページングが動かないということがありましたので、そのときの解決策をメモしておきます。

まずは、確実に動くコードを記述。

例えば、導入事例詳細(case_detail)とし、作成していくとします。

★functions.phpにカスタム投稿タイプを追加する記述
 
//カスタム投稿タイプ

register_post_type(

	'case_detail', 
	
	array(
		'label' => '導入事例詳細',
		'description' => '導入事例詳細',
		'hierarchial' => false,
		'public' => true,
		'has_archive' => true,
		'supports' => array('title','editor','thumbnail','custom-fields','excerpt','author','trackbacks','comments','revisions','page-attributes'),

		)
);

//カスタムタクソノミー(カテゴリ形式)

register_taxonomy(
	
	'case_detail',
	'case_detail', 

	array(
		'label' => 'カテゴリ',
		'hierarchical' => true,
	)
);
 
★固定ページに一覧ページを作成(page-case.php)。カスタム投稿のループを記述し、一覧表示。
 
 'case_detail', //カスタム投稿タイプ(case_detail)を出力
'posts_per_page' => 8, //8件表示されたらページング処理
'paged' => get_query_var( 'paged' ), //ページングする際に必要な記述
); ?>


  

ここに内容を記述。




 

これで基本的にはページング処理ができます。
この記述でも動かないときは、DBのほうに問題があると思われます。

phpMyAdminにログインし、「wp_term_taxonomy」を見てみる。

次にデータベースを見てみます。
「wp_tarm_taxonomy」と項目がありますので、ここを見てみます。
動かないときに、タクソノミーIDを変更したりすると、ここに追加されていき、名前が重複したりしてバグるようです。まずこのあたりの記述を削除します。

1

カスタム投稿タイプのインデックスを作成する。

次に、「wp_term_taxonomy」メニューのツリーになっている部分に「New」をクリックし、インデックスを追加し、「case_detail」とします。
カラムの内容も下記のように設定します。

2

3

WP管理画面のパーマリンク設定を変更する。

最後に、パーマリンクの末尾の「/」を外すと、ページングができるようになりました!

パーマリンク設定 ‹ test — WordPress

KEiSoN★

インターネット・ITに将来の可能性を感じ、デジタルハリウッドオンラインスクールで、webデザインを学ぶ。
2007年よりECカート開発会社にてwebディレクター/webデザイナーとして従事。マネージャー職も務める。
2009年1月よりフリーランスのwebディレクター/Webデザイナーとして独立し、ノマドな働き方を試み始める。
過去16カ国ほど訪れ、一眼レフにその景色を収めながら時々ドローンも飛ばすなど、写真や映像のクリエイティブにも触れる。
2015年11月にスカイゴールド株式会社として法人化。
中小企業向けのWebブランディング・デザイン、Wordpressのオリジナルテーマ開発・オウンドメディア構築が得意。
国内外の様々な価値観・デザインに接触することで、幅広いクリエイティブや臨機応変にアイデアを提供する。