• 解決済 h.toshiaki

    (@htoshiaki)


    お世話になります。

    早速ですが、<!–nextpage–>ショートコードで投稿を2ページに分割した場合、single.php内に”2ページ目のみ”を表示するよう記述出来ますでしょうか?
    何卒宜しくお願い致します。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター jim912

    (@jim912)

    ショートコードは、[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 で表示されるものの検証はしておりませんので、別途検証ください。

    トピック投稿者 h.toshiaki

    (@htoshiaki)

    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で取得しているので、フィルターなどの抜けがあると思いますが、調整してみてください。

    トピック投稿者 h.toshiaki

    (@htoshiaki)

    nobita様、ご回答有難うございます。
    無事、2ページ目が表示されるようになりました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「nextpageで分けられた投稿の表示」には新たに返信することはできません。