the_contentフィルターで無効化されるページ分割を再度実行する方法【WordPress】

the_contentフィルターで無効化されるページ分割を再度実行する方法【WordPress】



$post->post_contentで取得した本文生データにthe_contentのフィルターをかけても<!--nextpage-->によるページ分割が無効化されることがわかりました。

そこでthe_contentフィルターをかけてもページ分割出来るように書いてみます。

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を取得してページ番号を取得しておきます。
  • setup_postdata()で投稿情報を各種のグローバル変数へセットします(必要らしい)。
  • explode()で本文全体を<!--nextpage-->で配列に分割し、ページ番号に応じて本文セクションを取得します。
今日はここまで

関連する記事



こちらはいかが?


コメントを残す