WordPress
カスタマイズ事例

WORDPRESS CUSTOMIZATION

投稿ページ(シングルページ)で何か記事の一覧表示をしてさらにページネーションもするときの注意点 テーマ販売あり

WordPressではarchive、taxonomy、categoryといった、いわゆる一覧系ページではページネーション機能が有効に働いてくれます(設定を細かくカスタマイズすると働いてくれないこともありますが)。
ところが固定ページや投稿ページ(シングルページ)でそれをやろうとすると工夫が必要です。
固定ページに関しては、以前ご紹介した 固定ページにページネーション機能を持たせる をご参考ください。
今回は投稿ページ(シングルページ)でページネーションしてみます。
といっても、やることは固定ページの時と同じです。
ただ、WordPressに投稿ページの下層のページネーション用URLつまり /page/2/ というURLが存在しないものと認識されてしまうらしく、強制リダイレクトでTOPに飛んでしまうんですね。
これさえ抑え込めればページネーションができるようになります。
 
そこでまず投稿用のテンプレートファイルを作りましょう。
そうですね、たとえば「temp-single.php」という名前にしましょう。

/**
 * Template Name: 一覧&ページネーション用
 * Template Post Type: post
 */

//ここから先は【事例「固定ページにページネーション機能を持たせる」】と同じ記述で大丈夫です。
// https://100webdesign.jp/services/wordpress/wp_result/wp_result-199/

冒頭のコメントで「Template Name」を宣言すると、固定ページ用のテンプレートになります。
さらにこれに「Template Post Type: post」と、投稿タイプを加えて明示してあげることでターゲットの投稿タイプを定義することができます。
今回は投稿なので「post」ですね。
 
投稿用のテンプレートができたら、実際にページネーションさせたい投稿記事を作成しますが、このときテンプレートは上のテンプレート「一覧&ページネーション用」を選択しましょう。
(記事編集画面の「投稿の属性」のところにテンプレート選択欄があります)
 
最後に、テーマのfunctions.phpにリダイレクトを抑える記述をします。

add_filter('redirect_canonical','kaiza_disable_redirect_canonical');

function kaiza_disable_redirect_canonical( $redirect_url ) {
	if (  is_page_template( 'temp-single.php' ) )
		$redirect_url = false;
	return $redirect_url;
}

テンプレートを指定してリダイレクトを解除しています。
 
以上で、投稿ページ(シングルページ)でもページネーション付きの記事一覧ページを作ることができます。

【この事例を解決するためのWordPressテーマを購入できます】

現在あなたが利用されているWordPressテーマを活かしたまま、このページの事例を解決できるWordPressテーマを、子テーマとして購入できます。
この子テーマを有効化するだけで、現在お使いのデザインテーマにこの事例解決の機能が自動付与されます。
デザインが入っていないため、一般より格段に低い価格(事例の難易度により200円~1.3万円)です。
※ テーマは買い切りです
※ 自由に改変してお使いいただいて構いません
※ すでに子テーマでサイト運用されている方は、当該子テーマをマージしてください

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

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