WP-PageNavi

描述

想要取代較舊 ← 舊發表 | 新發表 → 部分頁面的連結?

This plugin provides the wp_pagenavi() template tag which generates fancy pagination links.

使用量

在您的主題中,您需要取代 next_posts_link() 與 previous_posts_link() 。

在貳零壹零主題中,看起來像是:

<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?></div>

您可以透過以下項目取代這兩行:

<?php wp_pagenavi(); ?>

針對多部分頁面,您可以尋找類似於以下的編碼:

<?php wp_link_pages( ... ); ?>

使用以下項目進行取代:

<?php wp_pagenavi( array( 'type' => 'multipart' ) ); ?>

移至 WP-管理 -> Settings -> PageNavi 進行設定。

變更的CSS

如果您需要設定 WP-PageNavi 的 CSS 樣式,您可以複製外掛目錄中的 pagenavi-css.css 的檔案,並進行修改。這樣您就不會在變更外掛後,遺失您先前的變更。

另外,您也可以在設定頁面中取消選取「使用 Use pagenavi.css ?」選項,並增加目錄中 style.css 檔案的樣式。

變更類別名稱

可以在這裡找到更多有用的 篩選器 ,並可變更指定頁面元素中的類別名稱。

篩選器

  • wp_pagenavi_class_pages
  • wp_pagenavi_class_first
  • wp_pagenavi_class_previouspostslink
  • wp_pagenavi_class_extend
  • wp_pagenavi_class_smaller
  • wp_pagenavi_class_page
  • wp_pagenavi_class_current
  • wp_pagenavi_class_larger
  • wp_pagenavi_class_nextpostslink
  • wp_pagenavi_class_last

篩選器使用量

// Simple Usage - 1 callback per filter
add_filter('wp_pagenavi_class_previouspostslink', 'theme_pagination_previouspostslink_class');
add_filter('wp_pagenavi_class_nextpostslink', 'theme_pagination_nextpostslink_class');
add_filter('wp_pagenavi_class_page', 'theme_pagination_page_class');

function theme_pagination_previouspostslink_class($class_name) {
  return 'pagination__control-link pagination__control-link--previous';
}

function theme_pagination_nextpostslink_class($class_name) {
  return 'pagination__control-link pagination__control-link--next';
}

function theme_pagination_page_class($class_name) {
  return 'pagination__current-page';
}


// More Concise Usage - 1 callback for all filters
add_filter('wp_pagenavi_class_previouspostslink', 'theme_pagination_class');
add_filter('wp_pagenavi_class_nextpostslink', 'theme_pagination_class');
add_filter('wp_pagenavi_class_page', 'theme_pagination_class');

function theme_pagination_class($class_name) {
  switch($class_name) {
    case 'previouspostslink':
      $class_name = 'pagination__control-link pagination__control-link--previous';
      break;
    case 'nextpostslink':
      $class_name = 'pagination__control-link pagination__control-link--next';
      break;
    case 'page':
      $class_name = 'pagination__current'
      break;
  }
  return $class_name;
}

開發

製作群

捐贈

我在空餘時間建立、更新、維護並支援這個外掛,如果您真的喜愛我的外掛,可以透過捐獻協助,會真的很感謝您。即使沒有,也無須有壓力的使用我的作品。

螢幕截圖

  • 自訂設計
  • 管理 - 選項頁面

常見問題

啟動時發生錯誤:「可能的錯誤:語法錯誤、不可預期的…」

請確認您的主機正在執行 PHP 5版。這才是唯一萬無一失的方式在 wp-config.php 增加新行 (在 <?php 標籤後開啟):

var_dump(PHP_VERSION);

當我移至第二頁時,我看見與第一頁相同的文章!

您正在使用 query_posts() 發生錯誤。請見 正確使用 query_posts() 的方式

PageNavi 會以次要項目有效執行 WP_Query 例項嗎?

是的;請閱讀 這個教學(英文)

我要如何忽略選項頁面?

如果您執行多國語言外掛,您可能需要略過這頁選項的字串。

您也可以:

<?php wp_pagenavi( array( 'options' => PageNavi_Core::$options->get_defaults() ) ); ?>

評價

2023年8月17日
Simples e totalmente funcional. Resolvendo o problema de paginação com extrema facilidade. Parabéns aos devs.
2022年11月22日
I am using this plugin + Divi. It works just fine, but there is a bug with the slugs of the pages and the post types. If you have, for example, a post type with the slug "speakers" and your page is also call "speakers", both slugs will be the same and this is causing the plugin to break. Most people on the internet are looking for this error as the page/2 error. Be sure the slugs does not match and it will work just fine.
2022年6月24日
Pure code and so simple to customize. The simplest plugin I ever installed. A couple of minutes to get it working. Couldn't be happier 🙂 I only added this snippet to replace my Woocommerce pagination: remove_action('woocommerce_pagination', 'woocommerce_pagination', 10); function woocommerce_pagination() { wp_pagenavi(); } add_action( 'woocommerce_pagination', 'woocommerce_pagination', 10);
2022年5月9日
Thanks for that plugins I use till long years to add a navigation bar box inside my blog including more than 2000 entries 😉
閱讀全部146個評價

貢獻者及開發者

“WP-PageNavi” 是一個開源的軟體。以下的人對這個外掛作出了貢獻。

貢獻者

WP-PageNavi 外掛目前已有 53 個本地化語言版本。 感謝所有譯者為這個外掛做出的貢獻。

將 WP-PageNavi 外掛本地化為台灣繁體中文版。

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

修改日誌

2.94.1

  • FIXED: PHP 8.2 warnings

2.94.0

  • NEW: Add args param on wp_pagenavi filter. Props @asadowski10
  • NEW: Improve accessibility of nav links. Props @carlabobak

2.93.4

  • FIXED: Update SCB Framework To Support PHP 8

2.93.3

  • FIXED: Update SCB Framework To Remove contextual_help

2.93.2

  • NEW: Bumped to WordPress 5.4
  • FIXED: Ensure Action Links is always an array

2.93.1

  • FIXED: Duplicated Settings Saved admin_notices

2.93

  • Remove screen_icon from SCB.

2.92

  • Add title attr to pages link. Props @Mahjouba91.

2.91

  • Validate text option against kses
  • 更新 SCB Framework

2.90

  • Remove po/mo files from the plugin
  • Use translate.wordpress.org to translate the plugin

2.89.1

  • FIXED: before and after args

2.89

  • NEW: wrapper_tag option to allow other HTML tag besides DIV and wrapper_class option to allow other class name besides wp-pagenavi. Props @Mahjouba91.

2.88

  • NEW: Added filters for altering class names. Props @bookwyrm

2.87

  • NEW: Uses WordPress native uninstall.php

2.86

  • NEW: Bump to 4.0
  • NEW: Added rel=next and rel=previous

2.85

  • FIXED: “Use pagenavi-css.css” & “Always Show Page Navigation” in the options are not being saved

2.84

  • FIXED: Updated scb framework to fix scbAdminPage incompatible error

2.83

  • added ‘echo’ parameter
  • added Estonian and Bengali translations
  • updated scbFramework

2.82

  • fixed prev/next links not appearing in some conditions
  • added Hebrew, Georgian and Azerbaijani translations
  • updated scbFramework

2.81

  • require an explicit type; fixes bugs with multipart pages

2.80

  • support for multi-part pages and user queries
  • moved prev/next links before/after first/last links
  • more info

2.74 (2011-02-17)

  • added ‘smaller’ and ‘larger’ classes
  • added $query arg to wp_pagenavi()
  • updated translations
  • more info