wordpressには、改ページの機能がありますが、記事IDを指定して分割を取得する方法が見当たりませんでしたので、ひとまず色々考えて解決しました。

explodeを使って、ページごとのデータを取得する。

改ページに関しては、<!–nextpage–>前後で分割するようですので、以下のような感じで記事を取得して、分割して使用しました。

$content = get_post($term_id); //$term_id=記事ID
$content_array=explode( '<p><!--nextpage--></p>', $content->post_content ); 

///$content_array[0] ->1ページ目
///$content_array[1]-> 2ページ目 

記事のページに関してはpearのpagerを利用

次のページなどのリンクに関しては、関数があったのですが、あまり好みではなかったので、pear のpagerを使って対応しました。

$page=$_GET["p"];///現在の記事のページ
$page_count=substr_count($content->post_content, '<!--nextpage-->'); 
$page_count=$page_count+1;///分割された数

$options = array( 
"totalItems" =>$page_count, 
"delta" => 4, 
"perPage" => 1, 
"append" =>true, 
"fileName"=>"%d", 
"currentPage"=>$page,
 "mode" => "Sliding",
 "path" =>'/archives', 
"urlVar" =>'page', 
"prevImg" =>'',
"nextImg" =>'', 
"firstPagePre" =>'', 
"firstPagePost" =>'', 
"lastPagePre" =>'', 
"lastPagePost" =>'', 
"firstPageText" =>'&lt;&lt;', 
"lastPageText" =>'&gt;&gt;', 
"spacesBeforeSeparator" => 2, 
"spacesAfterSeparator" => 2, 
"separator" =>"", 
"clearIfVoid"=>false );

$pager =@ Pager::factory($options); 
$navi = $pager -> getLinks(); 
$page_html='<div class="pager">';  
$page_html.=$navi["pages"];
$page_html.='</div>'; 

ひとまず、これで解決できたのでメモがてら

コメント