WP-CommentNavi

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_first
  • wp_commentnavi_class_previouscommentslink
  • wp_commentnavi_class_extend
  • Menší třída pro navigaci v komentářích
  • Třída pro stránku s navigací podle komentářů
  • wp_commentnavi_class_current
  • wp_commentnavi_class_larger
  • wp_commentnavi_class_nextcommentslink
  • Poslední lekce věnovaná navigaci pomocí komentářů

Další filtry

  • wp_commentnavi — kompletní kód před zobrazením
  • wp_commentnavi_allowed_html — značky povolené v nastavení textu navigace
  • wp_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

  1. Nainstalujte a aktivujte plugin.
  2. Otevřete soubor wp-content/themes/<NÁZEV VAŠEHO MOTIVU>/comments.php a přidejte <?php if ( function_exists( 'wp_commentnavi' ) ) { wp_commentnavi(); } ?> na místo, kde byly původní odkazy na komentáře.
  3. 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

Moje šablona volá funkci wp_commentnavi_all_comments_link() a web nefunguje správně

Tato funkce byla ve verzi 2.0.0 odstraněna, stejně jako proměnná dotazu comment-all, na které byla závislá. Otevřete soubor wp-content/themes/<NÁZEV VAŠEHO MOTIVU>/comments.php a 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=1 k 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 v pre_get_posts bez kontroly is_main_query() ani is_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.

V mém šabloně se přestal používat soubor commentnavi-css.css

Přejmenujte jej na wp-commentnavi.css. Vlastní stylový list pluginu byl ve verzi 2.0.0 přesunut do css/wp-commentnavi.css a 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.

Po aktualizaci vypadá navigace jinak

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-color a --wp-commentnavi-border-color-current podle výše uvedeného popisu.

Navigace zmizela poté, co jsem do textu „předchozí“ nebo „další“ vložil ikonu ve formátu SVG

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 filtr wp_commentnavi_allowed_html.

V navigaci u komentářů se mi najednou zobrazují další čísla, jako třeba 10, 20, 30

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 souboru comments.php vašeho šablony, nikoli ze souboru single.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

28. 9. 2016
I have 5 Comment Pages with 5 comments on each page.So by default,newest comments goes to 5th page. How to get newest comments on 1st page? How to reverse wordpress comments pagination? please help the people to solve this problem.thanks
Přečtěte si všechny 2 recenze

Autoři

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

Spolupracovníci

Plugin „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-all a funkce wp_commentnavi_all_comments_link(). Funkce se připojila k háčku pre_get_posts bez ochranných podmínek is_main_query() nebo is_singular() a vynutila nastavení comments_per_page na 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á funkci wp_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_options namísto commentnavi_options, přičemž verze pluginu a schématu se ukládají do samostatného řádku wp_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.css se nyní jmenuje css/wp-commentnavi.css a kopii v vašem šabloně je třeba přejmenovat na wp-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ů, filtr wp_commentnavi pro celý kód a filtr wp_commentnavi_allowed_html pro 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-color a --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 title bez ú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.css ve 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_scripts namísto wp_print_styles a 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.