WP-PageNavi

Popis

Chcete nahradit staré odkazy Starší příspěvky | Novější příspěvky nějakými odkazy na stránky?

Tento plugin poskytuje šablonový tag wp_pagenavi(), který generuje stylové odkazy pro stránkování.

Velkou část řady 2.x vytvořil scribu, na jehož návody k použití této řady v kombinaci se sekundárními dotazy odkazuje i níže uvedená sekce FAQ. Ikona pluginu pochází od SimpleIcon z Flaticon.

Dary

Většinu svého volného času jsem věnoval tvorbě, aktualizaci, údržbě a podpoře těchto pluginů. Pokud se vám moje pluginy opravdu líbí a mohli byste mi věnovat pár dolarů, velmi bych to ocenil. Pokud ne, můžete je klidně používat bez jakýchkoli závazků.

Použití

Ve svém šabloně musíte vyhledat volání funkcí next_posts_link() a previous_posts_link() a nahradit je.

V šabloně Twentyten to vypadá takto:

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

Tyto dva řádky byste nahradili tímto:

<?php wp_pagenavi(); ?>

U vícedílných stránek byste hledali kód podobný tomuto:

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

a nahraďte to tímto:

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

Pro nastavení přejděte na WP-Admin -> Nastavení -> PageNavi.

Úprava CSS

Pokud potřebujete upravit styl CSS pluginu WP-PageNavi, můžete zkopírovat soubor css/wp-pagenavi.css z adresáře pluginu do adresáře vaší šablony pod názvem wp-pagenavi.css a tam provést požadované úpravy. Tímto způsobem nepřijdete o své změny při aktualizaci pluginu.

Stylový list nenastavuje žádné písmo ani barvu textu, takže obojí přebírá z vašeho motivu, a jeho dvě barvy ohraničení jsou vlastní vlastnosti CSS. K provedení malé změny není třeba soubor vůbec kopírovat:

.wp-pagenavi {
    --wp-pagenavi-border-color: #d0d0d0;
    --wp-pagenavi-border-color-current: rebeccapurple;
}

Alternativně můžete na stránce nastavení nastavit možnost „Použít wp-pagenavi.css“ na hodnotu „Ne“ a styly přidat přímo do souboru style.css vaší šablony.

Změna názvů tříd

Existují filtry, pomocí kterých lze změnit výchozí názvy tříd přiřazené prvkům navigace na stránce.

Filtry

  • Třídy pro navigaci na stránce
  • wp_pagenavi_class_first
  • wp_pagenavi_class_previouspostslink
  • wp_pagenavi_class_extend
  • Třída pro navigaci po menších stránkách
  • Třída stránky pro navigaci mezi stránkami v WP
  • wp_pagenavi_class_current
  • wp_pagenavi_class_larger
  • wp_pagenavi_class_nextpostslink
  • wp_pagenavi_class_last

Použití filtrů

// 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;
}

Snímky obrazovky

Instalace

  1. Nainstalujte a aktivujte plugin.
  2. Ve vaší šabloně nahraďte volání funkcí next_posts_link() a previous_posts_link() funkcí wp_pagenavi(). Níže uvedený příklad ukazuje, jak to vypadá ve výchozí šabloně.
  3. Přejděte na WP-Admin -> Nastavení -> PageNavi, kde můžete změnit text a počet odkazů na stránky.

Nejčastější dotazy

Když přejdu na stránku 2, vidím tam stejné příspěvky jako na stránce 1!

Používáte funkci query_posts() nesprávně. Viz Správný způsob použití funkce query_posts()

Funguje PageNavi s sekundárními instancemi WP_Query?

Ano; přečtěte si tento návod

Jak mohu přeskočit stránku s možnostmi?

Pokud používáte vícejazyčný plugin, pravděpodobně budete chtít ignorovat texty na stránce nastavení.

Můžete to udělat takto:

<?php wp_pagenavi( array( 'options' => WP_PageNavi_Options::defaults() ) ); ?>

Před verzí 3.0.0 se to zapisovalo jako PageNavi_Core::$options->get_defaults(). Tato vlastnost byla založena na integrovaném frameworku SCB, který byl ve verzi 3.0.0 odstraněn, takže starý zápis již nefunguje a je nutné jej aktualizovat.

Mohu pro odkazy „Zpět“ a „Dále“ použít šipku ve formátu SVG?

Ano. Nastavení navigačního textu podporuje jak vložené prvky SVG, tak vše, co povoluje filtr wp_kses_post(), takže ikona zadaná na obrazovce nastavení zůstane zachována i po uložení. Tento seznam povolených prvků je definován filtrem wp_pagenavi_allowed_html, který můžete podle potřeby rozšířit nebo zúžit.

Recenze

17. 8. 2023
Simples e totalmente funcional. Resolvendo o problema de paginação com extrema facilidade. Parabéns aos devs.
22. 11. 2022
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.
Přečtěte si všech 149 recenzí

Autoři

WP-PageNavi je otevřený software. Následující lidé přispěli k vývoji tohoto pluginu.

Spolupracovníci

Plugin „WP-PageNavi“ byl přeložen do 53 jazyků. Děkujeme všem překladatelům za jejich pomoc.

Přeložte “WP-PageNavi” do svého jazyka.

Zajímá vás vývoj?

Prohledejte kód, podívejte se do SVN repozitáře, nebo se přihlaste k odběru protokolu vývoje pomocí RSS.

Přehled změn

3.0.1

  • ZMĚNA: Přenos nastavení se nyní provádí hned na začátku každého požadavku, nikoli pouze při načtení stránky wp-admin, takže i web, jehož ovládací panel není nikdy otevřen, po aktualizaci převezme svá nastavení.
  • OPRAVENO: Aktivace pluginu přes síť aktualizovala pouze ten web, na kterém došlo ke kliknutí. Všechny ostatní weby v síti nadále zobrazovaly uživatelské rozhraní s výchozím nastavením — jejich skutečné nastavení z doby před verzí 3.0.0 zůstávalo nečtené, dokud někdo neotevřel wp-admin daného webu, což také znamená, že nedošlo ke ztrátě žádných dat a všechny weby, které vypadaly nesprávně, se již samy opravily. Aktivace nyní prochází všechny weby v síti

3.0.0

  • AKTUÁLNÍ ZPRÁVA: WP-PageNavi nyní vyžaduje WordPress 6.8 a PHP 8.2. Webům, na kterých běží starší verze, nebude aktualizace nabídnuta.
  • AKTUÁLNÍ ZPRÁVA: Nastavení se ukládají do wp_pagenavi_options namísto pagenavi_options. Původní záznam se zkopíruje a automaticky odstraní.
  • AKTUÁLNÍ ZPRÁVA: Stránka nastavení byla přesunuta z options-general.php?page=pagenavi na options-general.php?page=wp-pagenavi
  • AKTUÁLNÍ ZPRÁVA: Soubor pagenavi-css.css se nyní jmenuje css/wp-pagenavi.css. Abyste mohli i nadále přepisovat jeho obsah, je nutné přejmenovat jeho kopii ve vašem adresáři šablony na wp-pagenavi.css.
  • AKTUÁLNÍ ZPRÁVA: Všechny třídy mají nyní předponu. PageNavi_Options, PageNavi_Call a PageNavi_Core se nyní nazývají WP_PageNavi_Options, WP_PageNavi_Call a WP_PageNavi_Core, a PageNavi_Admin se nyní nazývá WP_PageNavi_Settings
  • AKTUÁLNÍ ZPRÁVA: PageNavi_Core::$options bylo odstraněno. Místo toho použijte WP_PageNavi_Options::defaults() a WP_PageNavi_Options::get(). Viz často kladené otázky (FAQ)
  • AKTUÁLNÍ ZPRÁVA: PageNavi_Options_Page byla odstraněna a nahrazena funkcí WP_PageNavi_Settings
  • AKTUÁLNÍ ZPRÁVA: Odstranění frameworku SCB s sebou nese také odstranění globálních funkcí a tříd scb*, které tento framework definoval, jelikož byly do WordPressu načteny prostřednictvím pluginu, který jej obsahoval. Pokud vaše šablona nebo jiný plugin volal funkce html(), html_link(), set_post_field(), scb_init(), scb_register_table(), scb_install_table(), scb_uninstall_table(), scb_admin_notice(), scb_get_query_flags(), scb_list_fold() nebo scb_list_group_by(), musí je nyní poskytovat sám. Upozorňujeme, že je může stále poskytovat jiný nainstalovaný plugin, takže k poruše dojde až ve chvíli, kdy již žádný jiný prvek na webu nebude SCB zahrnovat.
  • NOVINKA: Byl odstraněn integrovaný framework WP SCB. Plugin nyní běží výhradně na základních API jádra WordPressu a nemá žádné závislosti
  • NOVINKA: Stránka nastavení je vytvořena pomocí rozhraní API nastavení WordPressu
  • NOVINKA: Stránka byla přepracována do podoby includes/ v souladu s rozvržením příručky k pluginům
  • NOVINKA: Filtr wp_pagenavi_capability pro oprávnění, které vyžaduje obrazovka nastavení
  • NOVINKA: Řádek wp_pagenavi_version, který obsahuje označení verze pluginu a schématu, aby bylo možné při budoucí aktualizaci provést srovnání
  • ZMĚNA: Obě barvy v kaskádovém stylu jsou nyní definovány jako vlastní vlastnosti CSS s náhradními hodnotami namísto pevně zadaných hexadecimálních hodnot a styl nyní používá tmavé barevné schéma
  • ZMĚNA: Šablona nepoužívá žádné fyzické vlastnosti CSS, takže jeden soubor vyhovuje jak webům s orientací zleva doprava, tak i zprava doleva
  • OPRAVENO: Vložená šipka ve formátu SVG již neodstraňuje celý odkaz „předchozí/další“. Funkce wp_kses_post() odstraní SVG místo toho, aby jej vyčistila, což vedlo k tomu, že text odkazu zůstal prázdný, a odkaz s prázdným textem byl zcela vynechán. Text navigace je nyní filtrován podle seznamu funkce wp_kses_post() a vložených prvků SVG, což je k dispozici jako filtr wp_pagenavi_allowed_html. Nahlášeno uživatelem Calem na toolshed (#73)
  • OPRAVENO: Odinstalace v režimu Multisite se již nezastaví u stého webu, takže u rozsáhlé sítě dojde k odstranění všech nastavení napříč celou sítí. Nahlášeno uživatelem Cal na toolshed (#73)
  • OPRAVENO: Popisky prvků aria-label v navigaci se nyní shodují s řetězci definovanými v jádru WordPressu, takže jsou přeloženy ve všech jazykových verzích, které jádro podporuje. Nahlásil Cal na toolshed (#73)
  • OPRAVENO: Odeslání pole, do kterého nepatří textové nastavení, již nevyvolává upozornění v PHP 8 a klíče možností, které plugin nedefinuje, se již neukládají. Nahlášeno uživatelem Cal na toolshed (#73)
  • OPRAVENO: Odkazy na stránky jsou escapovány pomocí funkce esc_url() namísto esc_attr()
  • OPRAVENO: Čísla stránek získaná z WP_User_Query jsou převedena na celá čísla, takže aktuální stránka je označena správně
  • OPRAVENO: Verze stylu se nyní řídí verzí pluginu, místo aby byla pevně nastavena na 2.70
  • OPRAVENO: Popisek u každého nastavení „Ano/Ne“ odkazoval na prvek, který neexistoval, takže kliknutí na něj nemělo žádný účinek
  • POZNÁMKA: Žádný filtr ani šablonový tag není přejmenován. Deset filtrů wp_pagenavi_class_*, filtr wp_pagenavi, funkce wp_pagenavi() a wp_pagenavi_dropdown() si všechny zachovávají své původní názvy.