Popis
Nahrazuje jednoduché odkazy ← Starší komentáře | Novější komentáře → odkazy na očíslované stránky.
Příklad: Strana 1 z 20: [1] 2 3 4 ... Poslední
Jedná se o protějšek pro vlákna komentářů k WP-PageNavi, přičemž obě jsou záměrně vytvořeny stejným způsobem, a to až po názvy filtrů, které mění názvy tříd.
Ikona pluginu pochází od Freepik z Flaticon.
Funkce
- Odkazy na očíslované stránky namísto dvou odkazů „předchozí“ a „další“
- Styl rozbalovacího seznamu pro vlákna s velkým počtem stránek
- Každý textový prvek v navigaci je konfigurovatelný, včetně šipek SVG vložených přímo do textu
- Vyšší čísla stránek — 10, 20, 30 — pro přeskočení v rámci dlouhého vlákna
- Deset filtrů pro názvy tříd prvků, jeden pro hotový kód
- Jeden stylový list, který pokrývá jak jazykové prostředí s psaním zleva doprava, tak i zprava doleva, s úpravou vzhledu pomocí dvou vlastních vlastností CSS
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í
Šablonový tag načítá údaje, které WordPress vyplňuje pouze uvnitř comments_template(), takže patří do souboru comments.php a jinde nic nevytvoří.
Přijímá také pole argumentů:
<?php
wp_commentnavi(
array(
'wrapper_tag' => 'nav',
'wrapper_class' => 'my-comment-nav',
'options' => array( 'num_pages' => 3 ),
)
);
?>
Předávejte 'echo' => false, aby se značka vrátila jako řetězec namísto jejího vypsání.
Úprava CSS
Navigační lišta přebírá písmo a barvy z vašeho motivu a obě barvy, které nastavuje, jsou vlastní vlastnosti CSS, takže obvyklým způsobem, jak změnit její vzhled, je nastavit je v souboru style.css vašeho motivu:
:root {
--wp-commentnavi-border-color: #d0d0d0;
--wp-commentnavi-border-color-current: #c0392b;
}
Pokud potřebujete provést více změn, zkopírujte soubor css/wp-commentnavi.css z adresáře pluginu do adresáře vaší šablony pod názvem wp-commentnavi.css a upravte jej tam. Vaše změny pak zůstanou zachovány i po aktualizacích pluginu a kopie v podřízeném šabloně má přednost před kopií v nadřazené šabloně.
Případně na obrazovce nastavení nastavte Použít wp-commentnavi.css na Ne a styly si napište sami.
Změna názvů tříd
Tyto filtry mění názvy tříd přiřazené navigačním prvkům:
- Třída pro stránky v navigaci komentářů WordPressu
wp_commentnavi_class_firstwp_commentnavi_class_previouscommentslinkwp_commentnavi_class_extend- Menší třída pro navigaci v komentářích
- Třída pro stránku s navigací podle komentářů
wp_commentnavi_class_currentwp_commentnavi_class_largerwp_commentnavi_class_nextcommentslink- Poslední lekce věnovaná navigaci pomocí komentářů
Další filtry
wp_commentnavi— kompletní kód před zobrazenímwp_commentnavi_allowed_html— značky povolené v nastavení textu navigacewp_commentnavi_capability— oprávnění potřebné pro přístup k obrazovce nastavení, ve výchozím nastavenímanage_options
add_filter( 'wp_commentnavi_capability', function ( $capability, $context ) {
return 'edit_pages';
}, 10, 2 );
Snímky obrazovky


Instalace
- Nainstalujte a aktivujte plugin.
- Otevřete soubor
wp-content/themes/<NÁZEV VAŠEHO MOTIVU>/comments.phpa přidejte<?php if ( function_exists( 'wp_commentnavi' ) ) { wp_commentnavi(); } ?>na místo, kde byly původní odkazy na komentáře. - Pro nastavení přejděte na
WP-Admin -> Nastavení -> CommentNavi.
Značka obsahuje hodnoty, které WordPress vyplňuje pouze uvnitř comments_template(), takže patří do souboru comments.php a nikam jinam.
Nejčastější dotazy
-
Tato funkce byla ve verzi 2.0.0 odstraněna, stejně jako proměnná dotazu
comment-all, na které byla závislá. Otevřete souborwp-content/themes/<NÁZEV VAŠEHO MOTIVU>/comments.phpa odstraňte řádek, který ji volá.Bylo to odstraněno, protože proměnná dotazu nebyla chráněna. Kdokoli mohl připojit
?comment-all=1k jakékoli URL na webu a donutit WordPress, aby při každém požadavku načítal až 9999 komentářů v jediném dotazu, a to bez omezení frekvence — háček se spouštěl vpre_get_postsbez kontrolyis_main_query()aniis_singular().Pokud chcete i nadále umožnit prohlížení všech komentářů najednou, zvyšte hodnotu Počet stránek k zobrazení nebo si podle potřeby nastavte možnosti stránkování komentářů v části Nastavení -> Diskuze.
-
Kam se poděla stránka s nastavením?
-
Nachází se na stránce Nastavení -> CommentNavi, která se nyní nachází na adrese
options-general.php?page=wp-commentnavi.Původní adresa byla
options-general.php?page=wp-commentnavi/commentnavi-options.php, která obsahovala název adresáře pluginu. Každý, kdo si plugin nainstaloval do adresáře s jiným názvem – ať už kvůli přejmenování, použití nástroje pro nasazení nebo balíčku – se setkal s obrazovkou nastavení, kterou nebylo možné vůbec otevřít. -
Přejmenujte jej na
wp-commentnavi.css. Vlastní stylový list pluginu byl ve verzi 2.0.0 přesunut docss/wp-commentnavi.cssa soubor, který plugin hledá ve vašem tématu, byl přejmenován tak, aby se s ním shodoval, takže soubor, který kopírujete, a soubor, ze kterého jste jej zkopírovali, mají stejný název. -
Stylový list již nenastavuje barvu odkazů, barvu ohraničení ani bílé pozadí. Místo toho přebírá barvy vašeho motivu, díky čemuž se přizpůsobí tmavému motivu, aniž by o něm měl jakékoli informace. Chcete-li změnit vzhled, nastavte ve svém motivu
--wp-commentnavi-border-colora--wp-commentnavi-border-color-currentpodle výše uvedeného popisu. -
Tato chyba byla opravena ve verzi 2.0.0. Funkce
wp_kses_post(), kterou dříve obrazovka nastavení používala k filtrování, odstraní prvek<svg>místo toho, aby jej vyčistila. Tím zůstal text odkazu prázdný, a odkaz bez textu se zcela vynechá — takže zmizel celý odkaz, nejen ikona.Navigační text je nyní filtrován podle seznamu funkce
wp_kses_post()a podle vložených prvků SVG. K úpravě tohoto seznamu použijte filtrwp_commentnavi_allowed_html. -
Jedná se o čísla větších stránek, která jsou ve výchozím nastavení vypnutá, takže to nemohlo být způsobeno aktualizací. Chcete-li je vypnout, nastavte v části Nastavení –> CommentNavi položku Počet zobrazených čísel větších stránek na hodnotu
0. -
Nezobrazuje se vůbec nic
-
Funkce wp_commentnavi() načítá
$wp_query->max_num_comment_pages, což WordPress nastavuje pouze uvnitřcomments_template(). Vyvolejte ji z souborucomments.phpvašeho šablony, nikoli ze souborusingle.php, postranního panelu nebo widgetu.Zkontrolujte také, zda je v části Nastavení -> Diskuze zapnuta možnost Rozdělit komentáře na stránky. Pokud je stránkování komentářů vypnuté, zobrazuje se vždy pouze jedna stránka a navigační prvky se skryjí, pokud není u možnosti Vždy zobrazovat navigaci v komentářích nastaveno „Ano“.
Recenze
Autoři
WP-CommentNavi je otevřený software. Následující lidé přispěli k vývoji tohoto pluginu.
SpolupracovníciPlugin „WP-CommentNavi“ byl přeložen do 2 jazyků. Děkujeme všem překladatelům za jejich pomoc.
Přeložte “WP-CommentNavi” 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
2.0.0
- AKTUÁLNÍ ZPRÁVA: Vyžaduje WordPress 6.8 a PHP 8.2, místo dosavadních verzí 6.0 a 7.4.
- AKTUÁLNÍ ZPRÁVA: Funkce „Zobrazit všechny komentáře“ byla odstraněna – dotazová proměnná
comment-alla funkcewp_commentnavi_all_comments_link(). Funkce se připojila k háčkupre_get_postsbez ochranných podmínekis_main_query()nebois_singular()a vynutila nastavenícomments_per_pagena hodnotu 9999, takže jakýkoli návštěvník mohl na jakékoli URL spustit neomezený dotaz na komentáře. Pokud vaše šablona volá funkciwp_commentnavi_all_comments_link(), musíte toto volání odstranit. Viz často kladené otázky (FAQ) - AKTUÁLNÍ ZPRÁVA: Stránka nastavení byla přesunuta na Nastavení -> CommentNavi na adrese
options-general.php?page=wp-commentnavi. Původní adresa obsahovala název adresáře pluginu, což znemožňovalo přístup k této stránce všem, kteří si plugin nainstalovali do jiného adresáře. Aktualizujte si záložky - AKTUÁLNÍ ZPRÁVA: Nastavení se ukládají do tabulky
wp_commentnavi_optionsnamístocommentnavi_options, přičemž verze pluginu a schématu se ukládají do samostatného řádkuwp_commentnavi_version. Vaše nastavení se automaticky přenesou při prvním načtení wp-admin po aktualizaci. - AKTUÁLNÍ ZPRÁVA: Soubor
commentnavi-css.cssse nyní jmenujecss/wp-commentnavi.cssa kopii v vašem šabloně je třeba přejmenovat nawp-commentnavi.css, aby se nadále používala - NOVINKA: Struktura byla upravena na
includes/v souladu s rozvržením Plugin Handbook. Plugin nyní obsahuje pět tříd za stejnými šablonovými značkami - NOVINKA: Stránka nastavení je vytvořena pomocí rozhraní API nastavení WordPressu
- NOVINKA: Větší čísla stránek, podobně jako v WP-PageNavi. Ve výchozím nastavení je tato funkce vypnutá, takže aktualizace nijak neovlivní vzhled navigace v komentářích – pro její zapnutí nastavte Počet větších čísel stránek k zobrazení
- NOVINKA: Nastavení Použít wp-commentnavi.css, díky kterému lze stylový list deaktivovat bez nutnosti jakýchkoli úprav
- NOVINKA: Deset filtrů
wp_commentnavi_class_*pro názvy tříd prvků, filtrwp_commentnavipro celý kód a filtrwp_commentnavi_allowed_htmlpro tagy povolené v navigačním textu - NOVINKA: Filtr
wp_commentnavi_capability, díky kterému lze obrazovku nastavení přiřadit jiné oprávnění nežmanage_options - NOVINKA: Funkce
wp_commentnavi()přijímá pole argumentů, včetně'echo' => false, které zajistí, že se značka vrátí namísto jejího zobrazení na obrazovce - ZMĚNA: Šablona sama o sobě nenastavuje barvu odkazů, barvu ohraničení ani pozadí. Barvy přebírá z motivu a ty dvě, které potřebuje, pocházejí z vlastních vlastností
--wp-commentnavi-border-colora--wp-commentnavi-border-color-current, přičemž výchozí hodnotou je tmavý vzhled. - ZMĚNA: Šablona je napsána v CSS s neutrálním směrem psaní, takže jedna šablona slouží pro oba směry psaní
- OPRAVENO: Aktivace sítě a odinstalace více webů způsobovaly fatální chyby. V obou případech byla volána funkce
wp_get_sites(), kterou WordPress v verzi 5.1 odstranil. - OPRAVENO: Hromadná odinstalace napříč weby se zastavila u stého webu, přičemž na všech následujících webech zůstala zachována původní nastavení, a aktuální blog byl obnoven pouze jednou namísto jednou pro každý web
- OPRAVENO: XSS. První, poslední a očíslované odkazy vkládaly text navigace přímo do atributu
titlebez únikových znaků, takže dvojité uvozovky v nastavení uzavřely tento atribut a vše za ním se proměnilo v značkovací jazyk. - OPRAVENO: Řádek s možnostmi uložený starší verzí vyvolával na uživatelském rozhraní upozornění PHP u každého nastavení přidaného od té doby. Výchozí hodnoty se nyní při načtení sloučí.
- OPRAVENO: V poli „Text pro předchozí …“ se zobrazovala hodnota z pole „Text pro následující …“, takže v nastavení nebylo možné zadat pro tato dvě pole odlišný text.
- OPRAVENO: Při ukládání nastavení se před každou apostrofou viditelně na samotném webu přidával zpětný lomítko. Funkce
addslashes()byla použita navíc k lomítkům, která WordPress již přidává do$_POST. - OPRAVENO: Soubor
commentnavi-css.cssve vašem motivu se hledal v nadřazeném motivu, ale načítal se z podřízeného motivu, takže v rámci podřízeného motivu nefungovalo ani jedno z těchto umístění - OPRAVENO: Název adresáře pluginu byl pevně zakódován, takže v případě instalace pluginu do adresáře s jiným názvem docházelo k chybě 404 při načítání stylu.
- OPRAVENO: U příspěvku bez komentářů se zobrazovalo „Strana 1 z 0“, když byla zapnutá možnost Vždy zobrazovat navigaci v komentářích.
- OPRAVENO: Rozbalovací nabídka odkazovala na administrační URL a
případ 2;používala středník, což je v PHP 8.5 zastaralé - OPRAVENO: Šablona stylů se zařazuje do fronty pomocí funkce
wp_enqueue_scriptsnamístowp_print_stylesa její verze se přizpůsobuje verzi pluginu, místo aby byla pevně nastavena na 1.10 - POZNÁMKA: Čtyři popisky nastavení byly přejmenovány z „Text pro první/poslední/další/předchozí komentář“ na „… stránka“, protože tyto odkazy směřují na stránku s komentáři, nikoli na konkrétní komentář. Přejmenování řetězce způsobí jeho resetování na translate.wordpress.org, takže se tyto čtyři popisky v přeložených jazykových verzích budou zobrazovat v angličtině, dokud je někdo znovu nepřeloží. Všechny ostatní stávající popisky si zachovaly své původní znění právě proto, aby se tomuto jevu zabránilo.
