WordPressで「PC用テーマ」「モバイル用テーマ」などテーマを分けてWebサイトを運用している場合、特定のテーマを表示している時だけページ分割させる方法

WordPressでWebサイトを作っている場合、PC用テーマとモバイル用テーマを別々に用意して、アクセスしてきた端末を判別して表示するテーマを振り分けてWebサイトを運用をすることがあります。

特定のテーマだけページ分割させたい時ってどうする

ところで「PC用テーマだけページ分割をさせたくない」という場合は、フォーラムを参考にして(というかそのまんまなんですが)以下のコードをPC用テーマフォルダ内にあるfunctions.phpに書けばできます。

add_action( 'the_post', 'no_pageing_hook' );
function no_pageing_hook( $post ) {
 global $pages, $multipage, $numpages;
 $multipage = 0;
 $content = str_replace("\n<!--nextpage-->\n", '<!--nextpage-->', $post->post_content);
 $content = str_replace("\n<!--nextpage-->", '<!--nextpage-->', $content);
 $content = str_replace("<!--nextpage-->\n", '<!--nextpage-->', $content);
 $pages = array( str_replace('<!--nextpage-->', '', $content) );
 $numpages = 1;
}

コードがやっていること

フック「the_post」を使って、ページ分割の際に使用する「<!–nextpage–>」の文字列を削除しています。削除する前に「<!–nextpage–>」前後の改行コード「\n」を取り除いているところがポイントですね。

勉強になりました。

著者:bouya Imamura