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

評價

Great

An historical plugin nicely done and well conceived.

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.

閱讀全部135個評價

貢獻者及開發者

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

貢獻者

“WP-PageNavi” has been translated into 38 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