WordPressで前/次ナビゲーションを置き換えるためのページネーションの追加方法

WordPressブログを始めることに決めた場合、WordPressのページネーションアーカイブページのデフォルト設定は前/次です。この設定は、おそらく考えることもなく十分であるほとんどの人にとっては十分です。しかし、すべての小さなことを微調整するのが好きなこだわり派の方は、ページ番号を表示するようにしたいかもしれません。
その場合、2つの選択肢があります。コードを微調整するか、簡単な方法を選んでプラグインを使用するかです。
目次
- プラグインなしでWordPressブログにページネーションを追加する
- 単一のWordPress投稿またはページを複数ページに分割できますか?
- WordPressプラグインを使用して前/次を数字に置き換える
プラグインなしでWordPressブログにページネーションを追加する
別のプラグインを使用するのがあまり魅力的でない場合(結局サイトを遅くしてしまいます)、コードを微調整するのが最良の方法だと決めるかもしれません。実際、どこを見ればよいかを知っていればそれほど難しくはありません。もしわからない場合は、お見せします。
まず、FTPプログラムが必要です。これは、あなたのウェブサイトにログインし、サイトのファイルを表示するプログラムです。最も人気のあるものはFileZillaですが、他のプログラムを使用してもかまいません。私は個人的にCyberDuckを使用しています。どちらも無料ですが、CyberDuckは開発者に寄付を促すポップアップが出てきます。
FTPプログラムを使用してサイトにログインすると、ファイルが見えます。

次に、functions.phpという名前のファイルを探します。それは通常、/wp-content/themes/テーマ名に位置するテーマフォルダー内にあります。functions.phpファイルをテキストエディタで開き、ファイルの末尾に以下を追加します。変更を保存することを忘れないでください。
function numeric_posts_nav(){
if( is_singular())
return;
global$wp_query;
/** 1ページのみなら実行を停止 */
if($wp_query->max_num_pages<=1)
return;
$paged= get_query_var('paged') ? absint( get_query_var('paged')):1;
$max=intval($wp_query->max_num_pages);
/** 現在のページを配列に追加 */
if($paged>=1)
$links[]=$paged;
/** 現在のページの周辺のページを配列に追加 */
if($paged>=3){
$links[]=$paged-1;
$links[]=$paged-2;
}
if(($paged+2)<=$max){
$links[]=$paged+2;
$links[]=$paged+1;
}
echo'
'."\n";
/** 前の投稿リンク */
if( get_previous_posts_link())
printf('
%s
'."\n", get_previous_posts_link());
/** 最初のページへのリンク、必要であれば省略記号を追加 */
if(!in_array(1,$links)){
$class=1==$paged ? ' class="active"':'';
printf('%s'."\n",$class, esc_url( get_pagenum_link(1)),'1');
if(!in_array(2,$links))
echo'
…
';
}
/** 現在のページへのリンク、および必要に応じて両方向に2ページ追加 */
sort($links);
foreach((array)$links as$link){
$class=$paged==$link ? ' class="active"':'';
printf('%s'."\n",$class, esc_url( get_pagenum_link($link)),$link);
}
/** 最後のページへのリンク、必要であれば省略記号を追加 */
if(!in_array($max,$links)){
if(!in_array($max-1,$links))
echo'
…
'."\n";
$class=$paged==$max ? ' class="active"':'';
printf('%s'."\n",$class, esc_url( get_pagenum_link($max)),$max);
}
/** 次の投稿リンク */
if( get_next_posts_link())
printf('
%s
'."\n", get_next_posts_link());
echo'
'."\n";
}次に、ページネーションが表示されるファイルを開きます。これは通常、index.phpおよびarchive.phpファイルです。ページネーションを表示するために以下のコードを貼り付けます。