前提・実現したいこと
配列$testに入っているデータを最大3件表示させ、ページネーションで3件目以降を表示するようにさせたいです。
$testには9件のデータが入ってます。
参考にさせて頂いた記事
https://www.sejuku.net/blog/70234
発生している問題・エラーメッセージ
現在のページを取得し、if文でリンクをつけるのかを判断しているのですが、変数への代入が上手く行われていないのか、if文が機能していません。
該当のソースコード
<?php if(have_posts()): the_post(); ?> <?php define('MAX','3'); $test = scf::get('test'); $test_num = count($test); $max_page = ceil($test_num / MAX); define ($URL, (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']); if(!isset($_GET['page_id'])){ $now = 1; }else{ $now = $_GET['page_id']; } $start_no = ($now - 1) * MAX; $disp_data = array_slice($test, $start_no, MAX, true); foreach ($disp_data as $fields ) { echo '<p id="comment">' .$fields['comment']. '</p>'; } echo '<ul class="pagination">'; if($now > 1){ // リンクをつけるかの判定 echo '<a href=' .$URL.'?page_id="'.($now - 1).'")><li id="prev"></li></a>'. ' '; } else { echo '<li id="prev"></li>'. ' '; } for($i = 1; $i <= $max_page; $i++){ if ($i == $now) { echo '<li class="page">' .$now. '</li>'. ' '; } else if ($i == 1){ echo '<a href=' .$URL.')><li>'. $i. '</li></a>'. ' '; } else{ echo '<a href=' .$URL.'?page_id='. $i. ')><li>'. $i. '</li></a>'. ' '; } } if($now < $max_page){ // リンクをつけるかの判定 echo '<a href=' .$URL.'?page_id="'.($now + 1).'")><li id="next"></li></a>'. ' '; } else if ($now == $max_page){ echo '<li id="next"></li>'; } echo '</ul>'; ?> <?php endif; ?> <?php if( function_exists("the_pagination") ) the_pagination(); ?>
試したこと
echo '<a href=' .$URL.'?page_id='.($now + 1).')><li id="next"></li></a>'. ' ';
「page_id='.($now + 1).'」の部分を二重引用符で囲む(page_id="'.($now + 1).'")と2ページ目は表示されるのですが、4件目〜6件目ではなく7件目〜9件目が表示されます。
二重引用符で囲まず数字として代入した場合2ページ目は表示されず、WordPressテーマのtopページに飛ばされます。URLはwordpress/sample-page__trashed/です
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/01 01:04