paginationの実装

下記のような関数を作成

function.php

<?php
function my_paginate(){
    global $wp_query, $paged;

    $p_base = get_pagenum_link(1);
    $p_format = 'page/%#%';

    //?の有無確認、有る場合は場所を特定
    if($word = strpos($p_base, '?')){
    //?がある場合(検索結果)
        $p_base = get_option(home).(substr(get_option(home), -1 ,1) === '/' ? '' : '/')
            .'%_%'.substr($p_base, $word);
    } else{
    //?が無い場合(カテゴリ、タグ等)
        $p_base .= (substr($p_base, -1 ,1) === '/' ? '' : '/') .'%_%';
    }

    echo paginate_links(array(
        'base' => $p_base,
        'format' => $p_format,
        'total' => $wp_query->max_num_pages,
        'current' => ($paged ? $paged : 1),
    )); 
}
?>

出力したい箇所で

<?php my_paginate(); ?>

CSS

.pagination{
    text-align: center;
}
a.page-numbers,
.pagination .current{
    background: #fff;
    border: solid 1px #ccc;
    padding:5px 8px;
    margin:0 2px;
    text-decoration: none;
}
.pagination .current{
    background: #000;
    border: solid 1px #000;
    color: #fff;
}

引用サイト
http://appakumaturi.hatenablog.com/entry/20110528/1306585716
http://denno-sekai.com/wordpress-pagination/

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