WordPressにページネーションをプラグイン無しで設置してみた

ページネーション

WordPressのテーマを作成した時、プラグイン無しでページネーションを設置してみました。プラグインを使用しても良いのですが、プラグイン同士の干渉による不具合や表示速度が遅くなるということがあるので、今回は直接記述して設置してみました。

function.phpへ追記

※テーマファイルのバックアップを取ってから作業しましょう。

先ずは、下記をテーマフォルダ内の「function.php」へコピペし追加してください。
[php]
// ページャー
function pagination($pages = ”, $range = 3)//ここの数字で表示数変更
{
$showitems = ($range * 2)+1;

global $paged;
if(empty($paged)) $paged = 1;

if($pages == ”)
{
global $wp_query;
$pages = $wp_query->max_num_pages;
if(!$pages)
{
$pages = 1;
}
}

if(1 != $pages)
{
echo "<div class=\"pagination\"><span>Page ".$paged." of ".$pages."</span>";
if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href=’".get_pagenum_link(1)."’>« First</a>";
if($paged > 1 && $showitems < $pages) echo "<a href=’".get_pagenum_link($paged – 1)."’>‹ Previous</a>";

for ($i=1; $i <= $pages; $i++)
{
if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
{
echo ($paged == $i)? "<span class=\"current\">".$i."</span>":"<a href=’".get_pagenum_link($i)."’ class=\"inactive\">".$i."</a>";
}
}

if ($paged < $pages && $showitems < $pages) echo "<a href=\"".get_pagenum_link($paged + 1)."\">Next ›</a>";
if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href=’".get_pagenum_link($pages)."’>Last »</a>";
echo "</div>\n";
}
}
[/php]

style.cssへ追記

テーマフォルダ内のstyle.cssへ下記をコピペし追加してください。私のテーマのCSSですので追加後、自分のテーマに合うように適宜修正してください。

[css]
/* ページャー */
.pagination {
clear:both;
padding:10px 30px;
position:relative;
font-size:14px;
line-height:16px;
}

.pagination span, .pagination a {
display:block;
float:left;
margin: 2px 2px 2px 0;
padding:6px 9px 5px 9px;
text-decoration:none;
width:auto;
color:#fff;
background: #555;
}

.pagination:after{
content: "";
clear: both;
display: block;
}
.pagination a:hover{
color:#fff;
background: #ED6D6D;
}

.pagination .current{
padding:6px 9px 5px 9px;
background: #ED6D6D;
color:#fff;
[/css]

設置

最後にページネーションを設置したい場所へ、下記のコードを追加します。

[php]
<?php if (function_exists("pagination")) {
pagination($additional_loop->max_num_pages);
} ?>
[/php]

まとめ

ページネーション 01 20140506 230046

私の場合、このような感じで設置出来ました。みなさんも難しくはないのでチャレンジしてみてはどうでしょうか!

こちらの記事を参考にしました。

コメント

タイトルとURLをコピーしました