WP-PageNavi

説明

既存の ← 過去の投稿 | 新しい投稿 → というリンクをページヘのリンクで置き換えたい、という方へ。

このプラグインは、わかりやすいページ送り機能を実装する wp_pagenavi() テンプレートタグを使えるようにします。

使い方

使用しているテーマの next_posts_link() と previous_posts_link() という記述を探して置き換える必要があります。

Twentyten テーマではこのようになります:

<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>

これらの2行は以下のように置き換えてください :

<?php wp_pagenavi(); ?>

マルチパートページでは、次のようなコードを探してください :

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

そして以下のように置き換えてください :

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

設定は ダッシュボード -> 設定 -> 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;
}

開発

クレジット

寄付

私は自分の多くの時間をプラグインの作成、アップデート、メンテナンス、サポートに費やしています。もしこのプラグインを気に入って頂け、数ドルの寄付を惜しまないで頂けるのであれば、とてもありがたいです。そうでなくとも、このプラグインは無料で使用可能です。

スクリーンショット

  • カスタムスタイル
  • 管理画面の設定ページ

FAQ

有効化したら “Parse error: syntax error, unexpected…” というエラーが表示されてしまいました。

ホスティングサービスが PHP 5 を動作することを確認してください。以下の行を wp-config.php に追加するだけです ( <?php タグの後 ) 。

var_dump(PHP_VERSION);

2 ページ目に行っても、1 ページ目と同じ投稿が表示されてしまいます。

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
  • Update 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