程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> wordpress 如何實現分類頁分頁功能

wordpress 如何實現分類頁分頁功能

編輯:PHP基礎知識
 

wordpress  默認翻頁功能很弱,一頁頁翻,弄到你手麻,所以類似wp-pagenavi翻頁插件,幾乎是WordPress博客必裝的插件,也是普及率很高的一款插件。雖然網上有如何把wp-pagenavi插件集成到wordpress主題的教程,但wp-pagenavi插件函數代碼拖沓,只是變相啟用插件而已,並沒有真正脫離wp-pagenavi插件。下面一段輕量級的函數,加上寥寥數行CSS樣式就可以完全替代分頁插件了。
 

wordpress
 


分類頁分頁實現方法:

首先將下面一段函數代碼添加到主題的functions.php模板文件中:

function kriesi_pagination($query_string){
    global $posts_per_page, $paged;
    $my_query = new WP_Query($query_string ."&posts_per_page=-1");
    $total_posts = $my_query->post_count;
    if(empty($paged))$paged = 1;
    $prev = $paged - 1;
    $next = $paged + 1;
    $range = 2; // only edit this if you want to show more page-links
    $showitems = ($range * 2)+1;
    $pages = ceil($total_posts/$posts_per_page);
    if(1 != $pages){
        echo "<div class='pagination'>";
        echo ($paged > 2 && $paged+$range+1 > $pages && $showitems < $pages)? "<a href='".get_pagenum_link(1)."'>最前</a>":"";
        echo ($paged > 1 && $showitems < $pages)? "<a href='".get_pagenum_link($prev)."'>上一頁</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>";
            }
        }

        echo ($paged < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($next)."'>下一頁</a>" :"";
        echo ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($pages)."'>最後</a>":"";
        echo "</div>\n";
    }
}

    接下來用下面的代碼替換原來模板中默認翻頁代碼或分頁插件代碼:

    <?php kriesi_pagination($query_string); ?>

    最後再把下面的樣式代碼添加到style.css中,刷新一下頁面,與使用插件實現的翻頁效果一樣。

    .pagination{
        line-height:23px;
    }

    .pagination span, .pagination a{
        font-size:12px;
        margin: 2px 6px 2px 0;
        background:#fff;
        border:1px solid #e5e5e5;
        color:#787878;
        padding:2px 5px 2px 5px;
        text-decoration:none;
    }

    .pagination a:hover{
        background: #8391A7;
        border:1px solid #fff;
        color:#fff;
    }

    .pagination .current{
        background: #fff;
        border:1px solid #8d8d8d;
        color:#393939;
        font-size:12px;
        padding:2px 5px 2px 5px;
    }
 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved