ショートコードは、[caption] のようにカギ括弧で括られるものを指し、<!–nextpage–> については、WordPress タグという呼称らしいです。
Write Post SubPanel Quicktags
※ page の項に「WordPress tag」の記載あり
ご質問の件ですが、分割した本文は、the_post タグを実行時にグローバル変数の $pages に配列で格納されますので、the_post アクションにて、
- グローバル変数の $pages を2ページ目($pages は0から始まる添字配列なので、$pages[1]が2ページ目の内容にあたる)のみの配列に変更する
- 分割数を格納しているグローバル変数 $numpages を1にする
- 分割の有無を表すグローバル変数 $multipage を 0 にする
とすると、the_content の表示にて2ページ目のみとすることが出来そうです。
ただし、アーカイブ表示、フィード、the_excerpt で表示されるものの検証はしておりませんので、別途検証ください。
jim912様、ご回答有り難うございます。
グローバル変数の設定についてなのですが、どのようにすれば宜しいでしょうか?
$numpages、$multipageについてはthe_post()コール前に代入するだけかと思うのですが、$pages[1]とした後の処理が分かりません。
勘違いしていました。nextpageですね 読み飛ばしてください
こんにちは
フィルタではどうですか?
コードに難ありですが、こんなニュアンスで出来ると思います。
add_filter( 'the_content', 'function_name', 99 );
function function_name( $return_value ) {
if ( is_single() && preg_match('!<span id="more-[^"]+"></span>!', $return_value) ) {
$content = preg_split( '!<span id="more-[^"]+"></span>!', $return_value );
return $content[1];
}
return $return_value;
}
nextpage が 一つだけなら、、、
add_filter( 'wp_link_pages', '__return_false');
add_filter( 'the_content','function_name' );
function function_name( $return_value ) {
global $post;
if ( is_single() ) {
$base_content = get_post( $post->ID ) ;
$base_content = preg_split('$<!--nextpage-->$', $base_content->post_content );
if( isset( $base_content[1])){
return $base_content[1];
}
}
return $return_value;
}
get_postで取得しているので、フィルターなどの抜けがあると思いますが、調整してみてください。
nobita様、ご回答有難うございます。
無事、2ページ目が表示されるようになりました。