固定ページでページング処理を行う方法
-
はじめまして よろしくお願いいたします。
当方 wordpress、phpともに1ヶ月程度の経験しかないため、言葉不足・説明不足があるかと思いますがご容赦ください。色々なサンプル・ご意見を参考にしながら つぎはぎだらけですが、なんとかwordpressでサイトを作成しております。
トップページをindex.phpで作成し(元々記述されていたソースを全て上書きしました)、外部複数のRSSを表示しページングにより表示件数をわけました。
以下のソース(index.phpに直書き)になりますが、トップページ上では問題なく期待通りにページングされるのですが、固定ページ(test.php)で同じ処理を行ってもページ送りのリンクには “www.~/index.php?page=2″ というふうにトップページと同じ結果のURLを返してきます。(アドレスバーには実際にはindex.phpの部分は表示されません)
固定ページでは固定ページで表示される複数RSS記事をページング処理によって表示件数をわけたいのですが、うまくいきません。ほか投稿者様の質問も拝見させていただいたのですが、解決に至りませんでした。解決の方法をどうか教えてください よろしくお願いいたします。
参考になるかわかりませんが、補足を。。
・固定ページのテンプレートを”test.php”として”index.php”とRSSのURL以外はまったく同じソースを記述しています。作成する固定ページは空のまま作成しています。
・アドレスバーに ”www.~~/?page_id=52?page=3″ または ”www.~~/test?page=3″ のように直書きしても期待する表示結果にはなりませんでした。
<?php $nums = 15; // 1ページの表示件数 session_start(); // ページ遷移ごとにリクエストしないようにセッションを使用します。 header('Content-Type:text/html; charset=UTF-8'); $rss = fetch_feed(array( 'http://~~', 'http://~~', 'http://~~' )); if (!is_wp_error( $rss ) ) : $rss->set_item_limit(10); $rss->set_cache_duration(600); $rss->init(); $maxitems = $rss->get_item_quantity(100); $rss_items = $rss->get_items(0, $maxitems); date_default_timezone_set('Asia/Tokyo'); endif; if ($maxitems == 0) {echo 'No items';} else{ $pages = ceil($maxitems / $nums); // 最大ページ数を計算 $page = (empty($_GET['page'])) ? 1 : $_GET['page']; // 現在のページを取得 $start = ($page - 1) * $nums; // スタートページを設定 $script = basename($_SERVER['SCRIPT_NAME']); $link = ''; // 前ページ・次ページのリンク設定 if ($page > 1) $link = '<span class ="page"><a href="'.$script.'?page='.($page -1) .'">前へ</a></span>'; // 各ページへのリンクを表示する場合 for($n = 1; $n <= $pages; $n++) { if($n == $page){ $link .= '<span class ="thispage">'.$n.'</span>'; } else { $link .= '<span class ="page"><a href="'.$script.'?page='. $n .'">'.$n.'</a></span>'; } } if ($page < $pages) $link .= '<span class ="page"><a href="'.$script.'?page='.($page + 1) .'">次へ</a></span>'; $count = 1; foreach ( $rss_items as $item ) { if ($count > $start && $count <= $start + $nums) { $imgn = preg_match("/<img\s.*?src=\"(.*?)\.(jpg|png|gif)\"/i", $item->get_content(), $images); if($imgn==1){ echo '<div class="article_box"><div class="article"><a>get_permalink().'" target="_blank">'.$images[0].'title="'.$item->get_title().'【'.$item->get_feed()->get_title().'】" border="0" style="height:100px;width:105px"/></a></div><h3 class="article_title"><a>get_permalink().'" title="'.$item->get_title(). '【'.$item->get_feed()->get_title().'】" target="_blank">'.$item->get_title().'</a></h3><p class="description"><a>get_permalink().'" title="" target="_blank">'.$item->get_description().'</a></p><p class="blogname">'.$item->get_feed()->get_title().'</p><p class="date">'.$item->get_date("Y/n/j H:i").'</p></div>'; } } $count++; } echo '<div style="margin: 15px 10px;">' . $link . "</div>\n"; } ?>
- トピック「固定ページでページング処理を行う方法」には新たに返信することはできません。