前提・実現したいこと
ワードプレスの全記事を取得して重複しないようにページングしたいです。
https://560days.com/lab/2019/01/002385.php
こちらの記事を参考にしたのですが、重複が解消されません。
トップページに新しくアクセス(もしくはリロード)した時のみ記事の並びを変更したいです。
ページネーションのコードに不具合があるかもしれないので貼っておきます。
ページネーションのコード
function pagination($pages = '', $range = 2) { $showitems = ($range * 2)+1;//表示するページ数(5ページを表示) global $paged;//現在のページ値 if(empty($paged)) $paged = 1;//デフォルトのページ if($pages == '') { global $wp_query; $pages = $wp_query->max_num_pages;//全ページ数を取得 if(!$pages) {//全ページ数が空の場合は、1とする $pages = 1; } } if(1 != $pages) {//全ページが1でない場合はページネーションを表示する echo "<ul class=\"lst_pager cf\">\n"; //Prev:現在のページ値が1より大きい場合は表示 if($paged > 1) echo "<li class=\"prev\"><a href='".get_pagenum_link($paged - 1)."'>◀︎</a></li>\n"; for ($i=1; $i <= $pages; $i++) { if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) { //三項演算子での条件分岐 echo ($paged == $i)? "<li class=\"is_cur\">".$i."</li>\n":"<li><a href='".get_pagenum_link($i)."'>".$i."</a></li>\n"; } } //Next:総ページ数より現在のページ値が小さい場合は表示 if ($paged < $pages) echo "<li class=\"next\"><a href=\"".get_pagenum_link($paged + 1)."\">▶︎</a></li>\n"; echo "</ul>\n"; } }
また記事の最初に出てきている以下のコードはfunctions.phpの最初に記載しています
<?php session_name("pgsession"); session_start(); add_filter('posts_orderby', 'edit_posts_orderby'); function edit_posts_orderby( $orderby ) { $seed = $_SESSION['pgsession']; if (empty($seed)) { $seed = rand(); $_SESSION['pgsession'] = $seed; } $orderby = 'RAND(' . $seed . ')'; return $orderby; } ?>
リロードした際に発火するコードはscriptタグで括られていなかったのでくくってheader.phpに記載しています。
<?php $url = $_SERVER['REQUEST_URI']; if(strstr($url,'page')==false): ?> <script>//こちらを追記 jQuery(document).ready(function( $ ) { if (window.performance) { if (performance.navigation.type === 1) { var sesid = "pgsession"; $.removeCookie(sesid); $.cookie(sesid, null); $.cookie(sesid, "", {expires: -1}); $.cookie(sesid,"",{path:"/",expires:-1}); } } }); </script>//こちらを追記 <?php endif; ?>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/08 12:59
2020/02/18 19:19