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

評価

2019年3月28日
Bom dia. Gostaria da ajuda de vocês. Procurei muito, mas muito mesmo, algum vídeo ou tutorial que ensinasse a instalar e configurar o Plugin wp-pagenavi no especificamente no meu tema que é OCEAN-WP, mas não encontrei. Vocês poderiam me dar um passo-a-passo especificamente nesse tema? Eu ficaria muito agradecido.
2018年5月11日
Work nicely out of the box. Can also be used with custom code / queries. I use this everywhere.
2018年2月27日
Works perfectly. Appreciate the customization options provided. Easy to style with CSS as well.
133件のレビューをすべて表示

貢献者と開発者

WP-PageNavi はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“WP-PageNavi” は47ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“WP-PageNavi” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

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