the_contentフィルターで無効化されるページ分割を再度実行する方法【WordPress】
作成日:
2019年9月18日
$post->post_content
で取得した本文生データにthe_content
のフィルターをかけても!--nextpage--
によるページ分割が無効化されることがわかりました。
そこでthe_content
フィルターをかけてもページ分割出来るように書いてみます。
PHP
global $post, $page;
setup_postdata( $post );
$content = $post->post_content;
// <!--nextpage-->で本文データを配列に分割後、ページ番号に応じて本文セクションを取得.
$content = explode( '<!--nextpage-->', $content )[ $page - 1 ];
// $contentに自分のやりたい処理.
$content = apply_filters( 'the_content', $content );
コード解説
- グローバル変数
$page
を取得してページ番号を取得しておきます。PHP [1]global $post, $page;
setup_postdata()
で投稿情報を各種のグローバル変数へセットします(必要らしい)。PHP [2]setup_postdata( $post );
explode()
で本文全体を!--nextpage--
で配列に分割し、ページ番号に応じて本文セクションを取得します。PHP [5]$content = explode( '<!--nextpage-->', $content )[ $page - 1 ];
物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
コメントをどうぞ