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">←</span> Older posts', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</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_firstwp_pagenavi_class_previouspostslinkwp_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_currentwp_pagenavi_class_largerwp_pagenavi_class_nextpostslinkwp_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
- Nainstalujte a aktivujte plugin.
- Ve vaší šabloně nahraďte volání funkcí
next_posts_link()aprevious_posts_link()funkcíwp_pagenavi(). Níže uvedený příklad ukazuje, jak to vypadá ve výchozí šabloně. - 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() -
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 filtremwp_pagenavi_allowed_html, který můžete podle potřeby rozšířit nebo zúžit.
Recenze
Autoři
WP-PageNavi je otevřený software. Následující lidé přispěli k vývoji tohoto pluginu.
SpolupracovníciPlugin „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_optionsnamístopagenavi_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=pagenavinaoptions-general.php?page=wp-pagenavi - AKTUÁLNÍ ZPRÁVA: Soubor
pagenavi-css.cssse nyní jmenujecss/wp-pagenavi.css. Abyste mohli i nadále přepisovat jeho obsah, je nutné přejmenovat jeho kopii ve vašem adresáři šablony nawp-pagenavi.css. - AKTUÁLNÍ ZPRÁVA: Všechny třídy mají nyní předponu.
PageNavi_Options,PageNavi_CallaPageNavi_Corese nyní nazývajíWP_PageNavi_Options,WP_PageNavi_CallaWP_PageNavi_Core, aPageNavi_Adminse nyní nazýváWP_PageNavi_Settings - AKTUÁLNÍ ZPRÁVA:
PageNavi_Core::$optionsbylo odstraněno. Místo toho použijteWP_PageNavi_Options::defaults()aWP_PageNavi_Options::get(). Viz často kladené otázky (FAQ) - AKTUÁLNÍ ZPRÁVA:
PageNavi_Options_Pagebyla 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 funkcehtml(),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()neboscb_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_capabilitypro 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 funkcewp_kses_post()a vložených prvků SVG, což je k dispozici jako filtrwp_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ístoesc_attr() - OPRAVENO: Čísla stránek získaná z
WP_User_Queryjsou 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_*, filtrwp_pagenavi, funkcewp_pagenavi()awp_pagenavi_dropdown()si všechny zachovávají své původní názvy.
