Steamer Lane Studio技術備忘録ワードプレス

WordPressの自作テーマ、function.phpに有ったら便利なコード3

wordpress WordPressの自作テーマ、function.phpに有ったら便利なコード3
最終更新日: 2023年4月15日

デフォルトとかテーマなら普通についているページネーション、自作なら用意しなければならない。
// pagenation
function pagination($end_size = 1, $mid_size = 2, $prev_next = true) {
global $wp_query;
$page_format = paginate_links(
array(
'current' => max(1, get_query_var('paged')),
'total' => $wp_query->max_num_pages,
'type' => 'array',
'prev_text' => '<',//前へのリンク文言 'next_text' => '>',//次へのリンク文言
'end_size' => $end_size,//初期値:1 両端のページリンクの数
'mid_size' => $mid_size,//初期値:2 現在のページの両端にいくつページリンクを表示するか(現在のページは含まない)
'prev_next' => $prev_next,//初期値:true リストの中に「前へ」「次へ」のリンクを含むか
)
);
$code = '';
if( is_array($page_format) ) {
$paged = get_query_var('paged') == 0 ? 1 : get_query_var('paged');
$code .= '

‘.PHP_EOL;
// $code .= ‘

‘.$paged.’/’.$wp_query->max_num_pages.’

‘.PHP_EOL;
}
wp_reset_query();
return $code;
}
phpわかる人は別のコードで作れるかな、とりまこれでどうにかなる。
で、カテゴリページへのページネーションの呼び出しは以下の通り。
<?php
$args = array(
'mid_size' => 1,
'prev_text' => '<',
'next_text' => '>',
'screen_reader_text' => ' ',
);
the_posts_pagination($args);
?>

このパターンはベーシックな感じで作ってるが、記事抽出のループでコードを変えるときはまた別のパターンで。