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() ) ); ?>

評價

Excellent for the visitor’s comfort!

What this plugin does is something that’s really lacking with WP and most themes. So it’s great! Thank you!

Even better, I add the code given here –> https://divibooster.com/styling-wp-pagenavi-pagination-in-divi/comment-page-1/#comment-71048
It makes it even more pretty.

nice one

configurable, possibility to disable css, show & hide fields.. just nice =)

閱讀全部133個評價

貢獻者及開發者

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

貢獻者

“WP-PageNavi” has been translated into 37 locales. Thank you to the translators for their contributions.

Translate “WP-PageNavi” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

修改日誌

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