wordpress複数ループとかカテゴリー毎のページ送りとか

2013.10.28 2019.05.10wordpressカスタマイズ
wordpress複数ループとかカテゴリー毎のページ送りとか

同じところではまる。。。毎回。。。

その度に懲りずに忘れてるのでφ(`д´)メモメモ…

複数ループ使う時は、ここからこのプログラム使うからねー
と魔法のセリフを忘れないようにする。。。

 <?php $temp_query = clone $wp_query; ?>
//ループ内容
 <?php $wp_query = clone $temp_query; ?>

ページ送りの不具合時404になる時に試してみようプラグイン
Top Level Categories Fix

カテゴリーを取得して一覧ページで次のページが同じ内容に初期表示されてしまうときは

<?php
query_posts('showposts=ここは表示件数&cat=ここはカテゴリID&paged='.$paged);
?>
 <?php if (have_posts()): while (have_posts()): the_post(); ?>
       <?php endwhile; endif;?>

$pagedの書き方に注意。。。

一覧のページナビゲーションをプラグインに頼らず書く場合

<?php
query_posts('showposts=ここは表示件数&cat=ここはカテゴリID&paged='.$paged);
?>
 <?php if (have_posts()): while (have_posts()): the_post(); ?>
       <?php endwhile; endif;?>


<?php /* paging navigation */
global $wp_rewrite;
$paginate_base = get_pagenum_link(1);
if (strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()) {
	$paginate_format = '';
	$paginate_base = add_query_arg('paged', '%#%');
} else {
	$paginate_format = (substr($paginate_base, -1 ,1) == '/' ? '' : '/') .user_trailingslashit('page/%#%/', 'paged');
	$paginate_base .= '%_%';
}

$pagination = array(
	'base' => $paginate_base,
	'format' => $paginate_format,
	'total' => $wp_query->max_num_pages,
	'mid_size' => 5,//ここは何ページ表示するか
	'current' => ($paged ? $paged : 1),
	'prev_text' => '前のページへ',
	'next_text' => '次のページへ'
	);

echo '<div class="page-navi">'."\n";
echo paginate_links($pagination);
echo '</div>'."\n";
?>