- HOME
- 記事一覧
- 勉強
爺イッヌ(17)との暮らし
日に日に衰えていく身体、変わらぬ食欲───
今年でめでたく17歳を迎えた爺イッヌとの暮らしの記録、11月編です。
やりたいこと
https://calullm.com/x-topazos/page/2/
これを
https://calullm.com/x-topazos/?page=2
この形にしたい!!
問題点
ワードプレスのパーマリンク設定が「/%category%/%postname%/」なので、
paginate_linksを使ってページネーションを表示すると、/page/n/の形で表示されてしまう様子。
formatやbaseurlを指定しても、/page/n/へリダイレクトが掛かって理想のパーマリンクにならない。
解決のためにやったこと
1.ページネーションを表示させたいページ
<?php
/* ----------------------------------
$paged
ページネーションを動かすために必要な記述。
()の中は、functionで設定したパラメーターと
同じものを設定する。
---------------------------------------*/
$paged = (int) get_query_var('page');
$wp_query = new WP_Query();
$param = array(
'numberposts' => 10,
'paged' => $paged
);
$wp_query->query($param);
if($wp_query->have_posts()):
while($wp_query->have_posts()) : $wp_query->the_post();
?>
<!--ここにループさせたい内容を記述します-->
<?php endwhile; endif; ?>
2.function.phpに記述
function pageNation2($wp_query,$paged){
if($wp_query->max_num_pages > 1){
echo '<div class="new-pagenation">';
echo paginate_links(array(
'format' => '?page=%#%',
'current' => max(1, $paged),
'show_all' => true,
'total' => $wp_query->max_num_pages,
'next_text' => '次へ',
'prev_text' => '前へ'
));
echo '</div>';
}
}
3.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /xxxxxx/page/(.*)/ https://calullm.com/xxxxxx/?page=$1
</IfModule>
参考サイト様
ありがとうございました!
WordPressで301リダイレクトを.htaccessで行う方法とは
WordPress 固定ページ内でページネーションを使ったら404になる原因と対策