WP-Polls (Ankety)

Popis

WP-Polls přidá na váš web anketu: otázku, možnosti odpovědí a lištu s výsledky, která nahradí hlasovací formulář, jakmile návštěvník odhlasuje, a to bez nutnosti znovu načíst stránku. Anketu lze vložit do příspěvku pomocí shortcode nebo bloku, do postranního panelu pomocí widgetu nebo kamkoli do vaší šablony pomocí šablonového tagu.

Anketa může přijímat jednu nebo více odpovědí, uzavřít se v vámi stanovený den a zobrazit se buď jako formulář, nebo jako její výsledek. Značkovací kód každé její části tvoří šablona, kterou můžete upravovat, a vzhled sloupců se nastavuje pomocí vlastních vlastností CSS, které může vaše šablona přepsat.

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í

Zobrazení ankety z šablony

<?php if ( function_exists( 'vote_poll' ) && ! in_pollarchive() ): ?>
    <li>
        <h2>Polls</h2>
        <ul>
            <li><?php get_poll();?></li>
        </ul>
        <?php display_polls_archive_link(); ?>
    </li>
<?php endif; ?>
  • Chcete-li zobrazit konkrétní anketu, použijte <?php get_poll(2); ?>, kde 2 je ID vaší ankety.
  • Chcete-li zobrazit náhodnou anketu, použijte <?php get_poll(-2); ?>
  • Chcete-li do svého příspěvku vložit konkrétní anketu, použijte [poll id="2"], kde 2 představuje ID vaší ankety.
  • Chcete-li do svého příspěvku vložit náhodný hlasovací průzkum, použijte [poll id="-2"]
  • Chcete-li do svého příspěvku vložit výsledek konkrétní ankety, použijte kód [poll id="2" type="result"], kde 2 představuje ID vaší ankety.

Zobrazení ankety v bloku

V editoru jsou k dispozici dva bloky v části Widgety:

  • Anketa — jedna anketa, a to buď jako hlasovací formulář, nebo jako její výsledek. Nastavte ID ankety v postranním panelu, nebo jej pro aktuální anketu nechte na nule, což odpovídá prázdnému [poll]. Zobrazit volí mezi hlasovacím formulářem a výsledkem.
  • Archiv anket — všechny ankety s výsledky; stejný seznam, jaký generuje stránka [page_polls].

Oba se vykreslují na serveru, takže náhled bloku v editoru představuje skutečný výsledek hlasování, nikoli pouze jeho přibližnou hodnotu, a změna výsledku hlasování se promítne do všech příspěvků, v nichž se zobrazuje, aniž by bylo nutné cokoli znovu ukládat.

Zkrácené kódy stále fungují a nikam nezmizí. [poll], [poll=2] a [page_polls] se chovají přesně tak, jak vždy, a příspěvek, který již některý z nich obsahuje, není třeba měnit. Bloky volají stejný kód jako zkrácené kódy, takže se oba vykreslují identicky – použijte ten, který se k danému příspěvku hodí.

Zobrazení ankety ve widgetu

  1. Přejděte na WP-Admin -> Vzhled -> Widgety.
  2. Přidejte widget Polls do oblasti pro widgety. U blokových šablon se tento widget nachází v bloku Legacy Widget, případně v části Vzhled -> Editor, pokud vaše šablona žádné oblasti pro widgety neobsahuje.
  3. Nastavte jeho název a vyberte, kterou anketu má zobrazovat, a poté uložte.
  4. Přejděte na stránce dolů a tam najdete pokyny k vytvoření archivu anket.

Jak přidám anketu do archivu?

  1. Přejděte na WP-Admin -> Stránky -> Přidat novou.
  2. Do pole pro název příspěvku zadejte libovolný název.
  3. Pokud používáte „pěkné“ trvalé odkazy, WordPress po zadání názvu stránky vygeneruje trvalý odkaz na tuto stránku. Hned vedle trvalého odkazu se zobrazí odkaz „Upravit“.
  4. Klikněte na tlačítko „Upravit“, potom do textového pole zadejte pollsarchive a následně klikněte na tlačítko „Uložit“.
  5. Vložte kód [page_polls] do textu příspěvku či stránky.
  6. Klikněte na ‚Publikovat‘.
  • Pokud NEPOUŽÍVÁTE „pěkné“ permalinky, přejděte na WP-Admin –> Ankety –> Nastavení a do pole URL archivu anket pod nadpisem Archiv zadejte adresu stránky archivu anket, kterou jste vytvořili výše.

Pro zobrazení celkového počtu anket

<?php if ( function_exists( 'get_pollquestions' ) ): ?>
    <?php get_pollquestions(); ?>
<?php endif; ?> 

Pro zobrazení celkového počtu odpovědí

<?php if ( function_exists( 'get_pollanswers' ) ): ?>
    <?php get_pollanswers(); ?>
<?php endif; ?> 

Pro zobrazení celkového počtu hlasů

<?php if ( function_exists( 'get_pollvotes' ) ): ?>
    <?php get_pollvotes(); ?>
<?php endif; ?> 

Zobrazit výsledky ankety podle ID

<?php if ( function_exists( 'get_pollvotes_by_id' ) ): ?>
    <?php get_pollvotes_by_id($poll_id); ?>
<?php endif; ?>

Pro zobrazení celkového počtu hlasujících

<?php if ( function_exists( 'get_pollvoters' ) ): ?>
    <?php get_pollvoters(); ?>
<?php endif; ?> 

Zobrazení času hlasování podle ID a formátu data

<?php if ( function_exists( 'get_polltime' ) ): ?>
    <?php get_polltime( $poll_id, $date_format ); ?>
<?php endif; ?>

WP-CLI

wp polls list
wp polls list --status=open
wp polls get 3
wp polls open 3
wp polls close 3
wp polls delete 3 --yes
wp polls list --status=open --format=ids | xargs -n1 wp polls close closes every open poll one at a time.

REST API

GET  /wp-json/polls/v1/poll/<id>
GET  /wp-json/polls/v1/poll/<id>/result
POST /wp-json/polls/v1/poll/<id>/vote

Čtení je veřejné, protože anketa je veřejná. Hlasování využívá stejný poll_<id>-nonce, který již obsahuje zobrazený hlasovací formulář, a je předán jako parametr nonce. Podléhá stejným nastavením oprávněnosti a opakovaného hlasování jako hlasování přímo na stránce.

Každá odpověď obsahuje jak vykreslený kód, tak i čísla, protože vzhled ankety určují vaše šablony a klient, který by si kód sestavil sám, by je ignoroval.

Odmítnutí vrací kód 403, nikoli 400 – uzavřená anketa, již odevzdaný hlas, neplatný nonce, nic nevybráno. Kód 400 je vyhrazen pro parametr, který tento plugin nikdy neměl příležitost zkontrolovat, a neexistující anketa se označuje kódem 404. Kód 403 tedy znamená, že požadavek byl pochopen a odpověď zní „ne“, a jeho opakované odeslání v jiné podobě nepomůže.

Tyto trasy představují doplnění. Akce admin-ajax.php polls zůstává beze změny a je i nadále podporována.

Překládání šablony

Šablonu pluginu lze překládat pomocí proměnných šablon.
Pro vlastní proměnné šablony existují tyto filtry

wp_polls_template_voteheader_variables
wp_polls_template_votebody_variables
wp_polls_template_votefooter_variables
wp_polls_template_resultheader_variables
wp_polls_template_resultbody_variables
wp_polls_template_resultfooter_variables

Šablony Result Body (Voted) a Result Footer (Voted) jsou filtrovány také pomocí
wp_polls_template_resultbody_variables a wp_polls_template_resultfooter_variables
– proměnné jsou sdílené, odlišné jsou pouze filtry pro značky.

Přidejte filtr do své šablony a zaregistrujte vlastní proměnnou, ke které přidáte svůj překlad.
Dobrým zvykem je používat proměnné s předponou STR_, kupříkladu STR_TOTAL_VOTERS.

    /**
     * Localize wp_polls_template_resultfooter_variables.
     *
     * @param array $variables An array of template variables.
     * @return array $variables Modified template variables.
     */
    function wp_polls_template_resultfooter_variables( $variables ) {

        // Add strings.
        $variables['%STR_TOTAL_VOTERS%'] = __( 'Total voters', 'theme-textdomain' );

        return $variables;
    }

// Trigger the filter
add_filter( 'wp_polls_template_resultfooter_variables', 'wp_polls_template_resultfooter_variables' , 10, 1 );

V administraci jednoduše zavoláte vlastní proměnnou následujícím způsobem a proměnná se přeloží do frontendu.
‚%STR_TOTAL_VOTERS%‘

Snímky obrazovky

Bloky

Tento plugin poskytuje 2 bloky.

  • Polls Archive Every poll, with its results, as an archive.
  • Poll A poll, as a voting form or as its result.

Instalace

  1. Nainstalujte a aktivujte plugin.
  2. Vytvořte si svou první anketu na WP-Admin –> Ankety –> Přidat anketu.
  3. Ukázka: zadejte do příspěvku [poll], přidejte blok Poll, přidejte widget Polls do postranního panelu nebo zavolejte funkci get_poll() z vašeho šablony. Níže uvedený návod pokrývá všechny čtyři možnosti.
  4. Šablony, lišta, informace o tom, kdo může hlasovat a jak se rozpozná opakované hlasování, najdete na stránce WP-Admin -> Ankety -> Nastavení.

Nejčastější dotazy

Každý může hlasovat tolikrát, kolikrát chce

Zkontrolujte Nastavení -> Hlavička obsahující IP adresu. Pokud je zde uvedena hlavička, jako například
HTTP_X_FORWARDED_FOR, ujistěte se, že proxy před WordPressem tuto hlavičku vždy přepíše.
Všechno, co si návštěvník může nastavit sám, lze při každém požadavku změnit,
a WP-Polls nemá žádný způsob, jak rozlišit skutečný proxy server od zfalšované hlavičky.

Před verzí 3.0.0 používal plugin WP-Polls jako identifikaci hlasujícího také celou hodnotu hlavičky.
X-Forwarded-For je seznam, client, proxy1, proxy2, takže návštěvník mohl přidat ještě
jeden záznam a být tak považován za nového uživatele. Nyní se čte pouze první adresa v seznamu.

Pokud nepoužíváte proxy, ponechte toto pole prázdné.

Každý volič je přihlášen ze stejné IP adresy nebo z nesprávné IP adresy

WordPress je za proxy serverem nebo CDN a každý požadavek k němu přichází z adresy
proxy serveru. Pojmenujte hlavičku, kterou váš proxy server nastavuje, v části Nastavení -> Hlavička obsahující
IP adresu
HTTP_CF_CONNECTING_IP pro Cloudflare — nebo, chcete-li důvěřovat obvyklé sadě
proxy hlaviček bez pojmenování jedné z nich, přidejte toto do souboru wp-config.php:

define( 'WP_POLLS_TRUST_PROXY', true );

Weby, které potřebují rozhodovat na základě jednotlivých požadavků, mohou využít filtr wp_polls_trust_proxy, jehož
výchozí hodnota odpovídá této konstantě.

Protokoly ankety zobrazují hashované IP místo adresy

To je záměrné a nemění se: WP-Polls ukládá wp_hash() adresy, takže
protokoly dokážou rozlišit dva hlasující, aniž by uchovávaly jejich IP adresy.

Ztratily se mi stylové prvky v pruhy ankety, nebo se mi znovu zobrazila moje vlastní šablona výsledků

Ve verzi 3.0.0 byl přepracován pruh ankety. Dříve se jednalo o jeden prvek <div class="pollbar">, jehož velikost byla určena
vnitřní šířkou; nyní se jedná o pruh s vlastností fill:

<div class="wp-polls-bar" aria-hidden="true"><div class="wp-polls-bar-fill" style="width: 42%;"></div></div>

Šablony Result Body a Result Body (Voted) se při aktualizaci přepíší do tohoto formátování,
včetně těch přizpůsobených. Nebylo možné je zachovat: názvy tříd
a stylový list se spolu se značkovacím jazykem změnily, takže přizpůsobená kopie staré šablony
by vykreslila lištu bez pravidel, která by s ní odpovídala. Znovu proveďte své změny v
Šablonách hlasování a zachovejte přitom dva prvky wp-polls-bar.

Pokud sloupec přidáváte ručně, použijte pro šířku %POLL_ANSWER_PERCENTAGE%.
%POLL_ANSWER_IMAGEWIDTH% bylo ve verzi 3.0.0 odstraněno a již se nenahrazuje, takže
šablona, která jej stále obsahuje, vloží doslovný token do atributu style a
pruh se vykreslí zcela bez šířky.

Pokud vaše šablona obsahuje vlastní soubor wp-polls.css, pravidla pro lištu v něm nejsou — dříve
byla generována pomocí PHP do vloženého bloku <style>, nyní se však nacházejí v
stylovém listu pluginu. Buď zkopírujte pravidla .wp-polls-bar do šablony, nebo svou kopii smažte a
místo toho je přepsat, což je nyní podporovaný způsob:

.wp-polls {
    --wp-polls-bar-height: 8px;
    --wp-polls-bar-background: #d8e1eb;
    --wp-polls-bar-border: #c8c8c8;
    --wp-polls-bar-radius: 3px;
}

Proč součet odpovědí v anketě není 100 %?

  • Je to kvůli problémům se zaokrouhlováním. Aby se vždy zaokrouhlilo na 100 %, k poslední odpovědi v anketě se přičte zbývající procento. Chcete-li tuto funkci povolit, přidejte do souboru functions.php vašeho tématu tento řádek: add_filter( 'wp_polls_round_percentage', '__return_true' );

Jak plugin načítá CSS?

  • WP-Polls načte soubor wp-polls.css z adresáře vaší šablony, pokud tam existuje.
  • Pokud tento soubor neexistuje, načte se soubor css/wp-polls.css, který je součástí balíčku WP-Polls.
  • To vám umožní aktualizovat WP-Polls bez obav z přepsání již vytvořených stylů anket.
  • Kopie šablony vytvořená před verzí 3.0.0 neobsahuje žádná pravidla pro pruhy hlasování, protože ta se dříve generovala pomocí PHP. Viz Ztratily se mi styly pruhů hlasování výše.

Jak nastavit individuální barvy pro každý panel ankety?

  • S laskavým svolením TreedBox.com
  • Nastavte --wp-polls-bar-background přímo u odpovědi, místo abyste upravovali styl samotného pruhu. Pruh tuto vlastnost načte, takže to funguje bez ohledu na to, jaký styl hlasovacího pruhu je nastaven, a bude to fungovat i v případě, že se kód stránky znovu změní.
  • Na konec souboru wp-polls.css přidejte:
.wp-polls-ul li:nth-child(01) { --wp-polls-bar-background: #8fa0c5; }
.wp-polls-ul li:nth-child(02) { --wp-polls-bar-background: #ffff88; }
.wp-polls-ul li:nth-child(03) { --wp-polls-bar-background: #ff8a3b; }
.wp-polls-ul li:nth-child(04) { --wp-polls-bar-background: #a61e2a; }
.wp-polls-ul li:nth-child(05) { --wp-polls-bar-background: #4ebbff; }
.wp-polls-ul li:nth-child(06) { --wp-polls-bar-background: #fbca54; }
.wp-polls-ul li:nth-child(07) { --wp-polls-bar-background: #aad34f; }
.wp-polls-ul li:nth-child(08) { --wp-polls-bar-background: #66cc9a; }
.wp-polls-ul li:nth-child(09) { --wp-polls-bar-background: #98cbcb; }
.wp-polls-ul li:nth-child(10) { --wp-polls-bar-background: #a67c52; }
.wp-polls-ul li:hover { --wp-polls-bar-background: #ff0000; }
.wp-polls .wp-polls-bar-fill { transition: background-color 0.7s ease-in-out; }

Před verzí 3.0.0 byl tento kód napsán pro .pollbar, což byl jediný prvek, z něhož se lišta dříve
skládala. Tato třída již neexistuje, takže starý úryvek kódu nic neobarví.

Recenze

27. 9. 2025
This plugin is perfect. Thank you so much to the creators. The only thing that I miss is being able to make anonymous polls, so I would like to be able to activate an option in the poll for anonymous polls, in which the logs show all the votes together, without indicating what option each person has voted for.
22. 5. 2024
For the ones who know something about HTML and CSS syntax, this plugin is perfect! It does exactly what is needed regarding polls, while the looks can be fully customized. IMHO, a brilliant piece of work!
29. 4. 2023
Hi there, I’ve been using this plugin and loved it for its simplicity alongside with the ability to customize the look and feel. Somehow, at some point, the admin interface changed and I am now able to see the answers of all users. Before, I was only able to see how many users voted for each answer, not who. This is a major problem for me. Is there any way to hide the usernames from the answers given? I need to see which users voted, but not what answer they gave. The answers should only be seen as a total for each option. Thanks
21. 10. 2022
Love the feature set, easy to use, great to work with, but it fails with my cache setup (standard Cloudflare) setup. Have to remove it a site and move to another solution, sadly this was after my install, setting up on my custom post types, etc. Would love to see it updated in the future.
Přečtěte si všech 136 recenzí

Autoři

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

Spolupracovníci

Plugin „WP-Polls (Ankety)“ byl přeložen do 16 jazyků. Děkujeme všem překladatelům za jejich pomoc.

Přeložte “WP-Polls (Ankety)” 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.0

  • OPRAVENO: Omezení počtu odpovědí, které lze při hlasování vybrat, bylo vynucováno pouze v prohlížeči a nikde jinde, takže pomocí jednoho speciálně upraveného požadavku bylo možné hlasovat pro všechny odpovědi v anketě s jedinou možností výběru – každá odpověď tak získala jeden hlas a celkový počet hlasů v anketě se zvýšil o několik, zatímco počet hlasujících se zvýšil pouze o jednoho. To má za následek, že procenta %POLL_MOST_ANSWER% a %POLL_LEAST_ANSWER% jsou trvale nesprávná. Maximální počet je nyní kontrolován na serveru, a to jak u AJAX, tak u REST cest.
  • NOVINKA: Příkazy WP-CLI pro wp pollslist, get, open, close a delete.
  • NOVINKA: REST API polls/v1 pro načtení ankety, zobrazení jejích výsledků a hlasování. Akce polls v souboru admin-ajax.php zůstává beze změny a je i nadále podporována.
  • NOVINKA: Dva bloky editoru, Anketa a Archiv ankety, oba v sekci Widgety. Zobrazují se na serveru pomocí stejného kódu, jaký používají zkrácené kódy, takže blok i zkrácený kód zobrazující stejnou anketu vytvářejí stejný kód HTML. Zkratkové kódy [poll], [poll=2] a [page_polls] zůstávají beze změny a jsou i nadále podporovány – není třeba nic převádět a příspěvky, které je již obsahují, budou i nadále fungovat.
  • 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: Skripty již nedefinují žádné globální funkce JavaScriptu. poll_vote(), poll_result(), poll_booth() a jejich ekvivalenty pro administrátory jsou nyní soukromé, takže vlastní šablony nebo motivy, které je přímo volaly, musí přejít na atributy data-poll-id / data-poll-action. WP-Polls při aktualizaci převede standardní šablony za vás a ve wp-admin vás upozorní na ty, které se převést nepodařilo.
  • ZMĚNA: Možnosti, šablony, nastavení, widget a postup instalace/aktualizace byly přesunuty do tříd v adresáři includes/. Dokumentované rozšiřovací body zůstávají beze změny: všechny filtry a akce wp_polls_*, zkrácené kódy [poll] i [page_polls] a šablonové tagy si zachovávají své přesné názvy a podpisy.
  • ZMĚNA: Přibližně třicet samostatných řádků wp_options je nyní nahrazeno jediným řádkem wp_polls_options, který obsahuje vnořené pole. Vaše nastavení se při aktualizaci převede automaticky; staré řádky budou odstraněny, jakmile do něj budou začleněny.
  • OPRAVENO: Chyba XSS na obrazovce Šablony ankety. Vložené obslužné funkce onclick jsou nahrazeny atributy data-poll-action / data-poll-id a onclick již není v šablonách ankety povoleným atributem.
  • OPRAVENO: V prostředí multisite je třeba funkci restore_current_blog() odinstalovat pouze jednou po skončení smyčky, nikoli jednou pro každý web. Funkce switch_to_blog() vkládá položky do zásobníku, takže zásobník nebyl vyprázdněn u všech webů kromě prvního.
  • OPRAVENO: Při odinstalaci byly tři tabulky ankety odstraněny přímo uvnitř smyčky procházející řádky voleb, takže operace odstranění proběhla 36krát pro každý web a bylo vydáno vždy tři příkazy DROP TABLE místo celkem tří.
  • ZMĚNA: Funkce Uninstall nyní volá get_sites() pouze pro získání ID, namísto vytváření objektu WP_Site pro každý web, a její pomocná funkce pro smazání tabulek má nyní předponu wp_polls_uninstall_site() namísto toho, aby používal globální název bez předpony plugin_uninstalled().
  • OPRAVENO: Aktivace sítě v multisite systému způsobovala fatální chybu. Aktivace volala funkci wp_get_sites(), kterou WordPress v verzi 5.1 odstranil.
  • OPRAVENO: V prostředí multisite nebyly tři tabulky ankety zaregistrovány v databázi $wpdb, takže jakýkoli dotaz provedený uvnitř funkce switch_to_blog() četl a zapisoval do ankety nesprávného webu.
  • OPRAVENO: Přidávání nebo odstraňování odpovědí v anketě v wp-admin již nezpůsobuje chybu. Volala se funkce jQuery .size(), která byla v jQuery 3 odstraněna.
  • OPRAVENO: V popisku hlasovací lišty se u každé odpovědi obsahující znak „&“ zobrazoval doslovný text &amp;. Archiv hlasování vykazoval stejnou chybu v %POLL_ANSWER_TEXT%, která byla rovněž opravena.
  • OPRAVENO: Protokoly ankety vykazovaly stejné dvojité kódování: odpověď obsahující znak „&“ se zobrazovala doslovně jako &amp; jak ve filtru odpovědí, tak v tabulce protokolu.
  • OPRAVENO: U uživatelů identifikovaných pomocí souboru cookie autora komentáře byl před apostrofem vložen zpětný lomítko, takže komentátor s názvem O'Brien se v protokolech ankety zobrazoval jako O\'Brien.
  • OPRAVENO: $_SERVER['REMOTE_ADDR'] již není čteno bez ochrany, což vyvolávalo varování při použití WP-CLI a cronu v PHP 8.
  • OPRAVENO: Odkazy na výsledek a hlasování již po kliknutí nesledují svůj zástupný symbol href.
  • OPRAVENO: Byla odstraněna duplicitní registrace zkráceného kódu.
  • OPRAVENO: Varování ohledně nedefinovaných klíčů pole v případě chybějících parametrů funkce `stats_display`.
  • OPRAVENO: Varování při zobrazení ankety, jejíž ID již neexistuje.
  • OPRAVENO: Koncový bod pro hlasování načítal $_REQUEST['view'] bez ověření, zda byla tato proměnná nastavena, což v PHP 8 vyvolávalo varování u každého požadavku, ve kterém tato proměnná chyběla.
  • OPRAVENO: Aktivace hledala soubory wp-admin/upgrade-functions.php, které WordPress ve verzi 2.x odstranil, a pokud nenašla ani tyto soubory, ani aktuální soubor, skončila s chybovou zprávou.
  • OPRAVENO: Možnosti ankety mohly nabízet styl lišty ankety, který se po uložení zamítl, přičemž se nastavení vrátilo do původního stavu, ale stále se zobrazovala zpráva „Nastavení uloženo“. Obrazovka a sanitizér nyní sestavují seznam dostupných stylů stejným způsobem.
  • OPRAVENO: Všechny adresy URL stylových šablon, skriptů a obrázků byly vytvořeny na základě pevně zakódované cesty wp-polls/, takže po přejmenování adresáře pluginu se WP-Polls nenačítaly žádné vlastní soubory. Všechny cesty nyní vycházejí přímo ze souboru pluginu.
  • ZMĚNA: Možnosti hlasování a šablony hlasování nyní využívají rozhraní API nastavení WordPressu namísto vlastního zpracování formulářů. Každý řádek na obou obrazovkách je zaregistrován pomocí add_settings_section() a add_settings_field() a vykreslen pomocí do_settings_sections(), takže obrazovky vypadají a chovají se stejně jako zbytek wp-admin a ani jedna z nich nevytváří vlastní tabulkové značky.
  • ZMĚNA: Pole „Pozadí hlasovací lišty“ a „Ohraničení hlasovací lišty“ jsou nyní výběrovými nástroji pro barvy – jedná se o vlastní ovládací prvky prohlížeče pro zadávání barev, stejné, jaké používá i plugin WP-Postratings – namísto textových polí o délce šesti znaků, vedle nichž byl vytištěn řetězec # a jejichž vzor byl synchronizován pomocí JavaScriptu. Náhled lišty se přizpůsobuje vybrané barvě. Nastavení se stále ukládá jako šestimístné číslo bez #, takže motiv nebo filtr, který jej čte, vidí to, co vždy; tříciferná hodnota, která zbyla z verze 2.x, se při výstupu rozšiřuje na šestimístnou, protože vstup pro barvu nezobrazí #abc.
  • ZMĚNA: Stránka „Spravovat ankety“ je nyní WP_List_Table, takže se stránkuje po 20 anketách na stránku, třídí se podle ID, celkového počtu hlasujících a data zahájení a tlačítka „Upravit“, „Protokoly“ a „Odstranit“ jsou umístěna v akcích v řádku při najetí myší namísto tří sloupců odkazů. Anketa, kterou web právě zobrazuje, je i nadále zvýrazněna.
  • ZMĚNA: Funkce „Přidat anketu“, „Upravit anketu“ a „Protokoly ankety“ jsou vytvořeny ze standardních prvků rozhraní wp-admin – řádky form-table s reálnými popisky, tlačítka submit_button(), notice zprávy a jeden h1 na každou obrazovku – namísto tabulek rozvržených pomocí atributů width, valign a align. Tlačítka „Zrušit“ jsou odkazy zpět na stránku „Správa anket“ namísto history.go(-1), na které nebylo možné kliknout prostředním tlačítkem myši ani je otevřít v nové záložce.
  • OPRAVENO: Statistiky v sekci „Správa anket“ se sčítaly při tisku jednotlivých řádků, což by v případě stránkování seznamu vedlo k tomu, že by se daná stránka započítala pouze jednou. Nyní se tyto údaje sčítají v SQL.
  • OPRAVENO: Při otevření protokolů ankety, která umožňuje více odpovědí, se objevily čtyři varování o nedefinovaných proměnných: pole tohoto filtru byla inicializována pouze uvnitř větve, která zpracovává jeho vlastní odeslání.
  • OPRAVENO: Protokoly ankety pojmenovávaly odpovědi podle seznamu vytvořeného při zobrazení rozevíracího seznamu filtrů, takže při vypnutém filtru wp_polls_log_show_log_filter byl každý záhlaví skupiny v protokolu prázdný. Hlas zaznamenaný u položky „Žádná odpověď“ také vyvolával varování namísto zobrazení textu „Null Votes“.
  • OPRAVENO: Řádky v protokolu hlasování jednotlivých voličů se nikdy nestřídaly: počítadlo řádků se resetovalo uvnitř smyčky, nikoli u každého nového voliče.
  • OPRAVENO: Změna nastavení „Doba platnosti souborů cookie a protokolů“ nevedla k přeplánování úlohy cron. Zpětné volání, které obnovuje plán, bylo zaregistrováno během vykreslování obrazovky „Poll Options“, avšak uložení probíhá na stránce options.php, která tuto obrazovku nikdy nenačte.
  • ZMĚNĚNO: Z administrátorských stránek byly odstraněny všechny zbývající inline obslužné funkce onclick/onblur/onchange a nahrazeny atributy data-poll-action a delegovanými posluchači, takže otázky a odpovědi v anketách již nemusí být převáděny do kontextu JavaScriptu.
  • ZMĚNA: Byla odstraněna závislost na jQuery. Oba skripty – jak vestavěné administrátorské skripty, tak plugin TinyMCE – nyní využívají vlastní API prohlížeče, takže WP-Polls již nevynucuje načtení jQuery na uživatelském rozhraní.
  • ZMĚNA: Skripty se dodávají ve formě čitelného zdrojového kódu; kopie .dev.js byly odstraněny.
  • OPRAVENO: AJAXový handler polls-admin nyní pro autorizaci kontroluje oprávnění manage_polls namísto toho, aby se spoléhal na své jednorázové kódy (nonces).
  • OPRAVENO: Do výstupu byly převedeny barvy pruhu ankety, akce hlasovacího formuláře a %POLL_RESULT_URL%, a při uložení byla provedena validace barev pruhu ankety.
  • AKTUÁLNÍ ZPRÁVA: Funkce „Poll Logging Method“ se nyní nazývá „Check For Repeat Votes“ a již nerozhoduje o tom, zda se něco zaznamenává. Nikdy nedělala nic jiného, než že určovala, s čím se vracející návštěvník porovnává, a tyto dva výklady směřovaly opačným směrem: web, který zvolil „Nezaznamenávat“ nebo „Zaznamenávat pomocí cookie“, nezaznamenával žádné hlasy, neměl žádné řádky na obrazovce „Logy“ a žádné údaje ve WP-Stats, což neodpovídá tomu, jak zní obě možnosti. Každý hlas je nyní zaznamenán bez ohledu na to, jak je tato volba nastavena. Možnosti znějí „Nekontrolovat“, „Kontrolovat podle cookie“, „Kontrolovat podle IP adresy“, „Kontrolovat podle cookie a IP adresy“ a „Kontrolovat podle uživatelského jména“; uložená čísla zůstávají beze změny, takže vaše nastavení znamená to, co vždy znamenalo. Klíč volby uvnitř wp_polls_options je check_method namísto logging_method, což bylo automaticky převedeno. Weby, které si záznamy raději neuchovávají, mohou z nového filtru wp_polls_log_vote vrátit hodnotu false; počty odpovědí a celkové výsledky hlasování jsou sloupce v tabulkách hlasování a aktualizují se v obou případech.
  • AKTUÁLNÍ ZPRÁVA: „Doba platnosti souboru cookie a protokolu“ se nyní nazývá „Zapamatovat voliče na“ a její popis již neuvádí opak toho, co nastavení ve skutečnosti dělá. Dříve bylo uvedeno „0 pro deaktivaci“; nula však nic nevypíná, naopak díky ní je blokování trvalé – cookie trvá jeden rok a dotazy na IP adresu a uživatelské jméno nemají vůbec žádné časové omezení. Nic také nevyprší v tom smyslu, že by bylo smazáno: protokol hlasování uchovává každý hlas bez ohledu na to, co je zde uvedeno. Rozhoduje pouze o tom, jak daleko do minulosti sahá kontrola opakovaného hlasování. Hodnota zůstává nezměněna, takže stávající weby se chovají přesně stejně jako dříve.
  • AKTUÁLNÍ ZPRÁVA: Nastavení „Polls AJAX Style“ již neexistuje. Sloužilo k volbě, zda se má zobrazovat indikátor načítání a zda se má anketa během hlasování postupně stmívat. Informace o tom, že se hlas zpracovává, je spíše zpětnou vazbou než pouhou ozdobou, proto se indikátor nyní zobrazuje vždy; a rozhodnutí o animaci závisí na návštěvníkovi, nikoli na majiteli webu, takže stmavování se řídí nastavením prefers-reduced-motion, stejně jako tomu již bylo u točícího se symbolu a pruhů s výsledky. poll_ajax_style se při aktualizaci vyřazuje, nikoli přenáší.
  • AKTUÁLNÍ ZPRÁVA: Pruh ankety byl přepracován a změna se projeví po aktualizaci. Původně se jednalo o <div class="pollbar"> s velikostí určenou pomocí inline šířky; nyní se jedná o wp-polls-bar dráhu obsahující wp-polls-bar-fill, což umožňuje vykreslení 100% odpovědi ve skutečné velikosti 100%. Šablony Result Body a Result Body (Voted) jsou při aktualizaci přepsány do nového značkovacího jazyka i v případě, že jste je přizpůsobili – názvy tříd a stylový list se přesunuly spolu se značkovacím jazykem, takže přizpůsobená kopie staré šablony již neobsahuje žádná pravidla, která by s ní odpovídala. Změny v šablonách ankety znovu použijte. Viz často kladené otázky.
  • AKTUÁLNÍ ZPRÁVA: Pravidla pro lištu ankety byla přesunuta z bloku <style>, generovaného programem PHP, do souboru css/wp-polls.css. Nyní se inline generují pouze čtyři vlastní vlastnosti – --wp-polls-bar-height, --wp-polls-bar-background, --wp-polls-bar-border a --wp-polls-bar-image – a jejich přepsání je podporovaným způsobem, jak změnit styl lišty. Pokud vaše šablona obsahuje vlastní soubor wp-polls.css, pravidla pro lištu v něm nejsou; viz Často kladené otázky.
  • AKTUÁLNÍ ZPRÁVA: Dlaždice anketního pruhu images/default a images/default_gradient byly odstraněny. Tyto dva stínované styly byly GIFy o šířce 1px, které obsahovaly vlastní barvy, takže výběr jednoho z nich automaticky zrušil nastavení pozadí anketního pruhu. Styl lišty ankety je nyní „Plochý“ nebo „Přechod“, přičemž oba jsou vykreslovány pomocí CSS na základě barvy, kterou nastavíte. default a default_gradient se po aktualizaci změní na „Přechod“ a původní možnost „Použít styl CSS“ se změní na „Plochý“.
  • OPRAVENO: U odpovědi v anketě se při každém hlasu vykresloval sloupec o délce 99 %, a v archivu anket se každý sloupec vykresloval na 90 % svého skutečného procenta, takže stejná odpověď měla na těchto dvou místech viditelně odlišnou délku. Obě tyto úpravy sloužily k tomu, aby okraj starého sloupce nepřesahoval hranice svého kontejneru, a již nejsou potřebné.
  • OPRAVENO: U odpovědi bez hlasů se zobrazoval pružek o šířce 1 % namísto prázdného pružku.
  • OPRAVENO: Archiv anket bezpodmínečně používal zaokrouhlovací filtr wp_polls_round_percentage, zatímco samotná anketa jej používala pouze v případě, že byl filtr zapnutý. V důsledku toho stejná anketa ve výchozí instalaci zobrazovala na stránce jednu sadu procentuálních podílů a v archivu jinou. Archiv nyní respektuje nastavení filtru, který je ve výchozím nastavení vypnutý. Pokud jste spoléhali na to, že součet procent v archivu bude přesně 100, přidejte add_filter( 'wp_polls_round_percentage', '__return_true' );, abyste filtr znovu zapnuli — nyní se uplatňuje na obou místech.
  • OPRAVENO: Při zapnutém filtru wp_polls_round_percentage se k zobrazenému procentuálnímu podílu poslední odpovědi přidává zaokrouhlovací rezerva, aby součet sloupce činil 100. Šířka pruhu se však počítala ještě před tímto zaokrouhlením, takže u poslední odpovědi se zobrazovalo jedno číslo, zatímco pruh znázorňoval hodnotu jinou. Každý sloupec nyní odpovídá procentuálnímu podílu, který je vedle něj uveden.
  • AKTUÁLNÍ ZPRÁVA: Šablonová proměnná %POLL_ANSWER_IMAGEWIDTH% byla odstraněna a již se nevysazuje. Obsahovala pouze procentuální hodnotu s korekcí, aby okraj starého sloupce nepřesahoval, a po odstranění těchto korekcí již neobsahuje žádné údaje, zatímco %POLL_ANSWER_PERCENTAGE% ano. Místo toho použijte %POLL_ANSWER_PERCENTAGE%. Aktualizace přepíše obě šablony výsledků, takže zásah je nutný pouze v případě, že je následně znovu přizpůsobíte.
  • ZMĚNA: Lišta ankety již neobsahuje popisek title, který opakuje procentuální podíl a počet hlasů, které jsou již uvedeny vedle ní, a je označena atributem aria-hidden, aby čtečky obrazovky tato čísla nečetly dvakrát. V části „Výsledky“ (Hlasováno) se popisek „Hlasovali jste pro tuto možnost“ přesouvá přímo na text odpovědi.
  • ZMĚNĚNO: Lišta se vyplňuje s animací a respektuje nastavení prefers-reduced-motion.
  • ZMĚNA: Soubor wp-polls-rtl.css byl odstraněn. Soubor css/wp-polls.css nyní využívá logické vlastnosti CSS, takže tento jediný stylový list se správně zobrazuje v obou směrech a weby s psaním zprava doleva načtou o jeden soubor méně. Pokud vaše šablona přepisuje soubor wp-polls-rtl.css, začleňte tato pravidla do svého souboru wp-polls.css.
  • AKTUÁLNÍ ZPRÁVA: Pokud jste nastavili možnost „Header That Contains The IP“, modul WP-Polls používal celou hlavičku jako identifikaci hlasujícího. X-Forwarded-For je řetězec, jehož levou část má návštěvník pod kontrolou, takže přidání ještě jednoho mezistupně vedlo k jiné identifikaci a dalšímu hlasu. Nyní se bere první platná adresa v hlavičce a v případě, že hlavička neobsahuje žádnou adresu, se použije REMOTE_ADDR. Weby, které nechaly toto nastavení prázdné, nejsou touto změnou dotčeny a jejich stávající záznamy o hlasování stále odpovídají. Viz Často kladené otázky.
  • ZMĚNA: Byla přidána konstanta WP_POLLS_TRUST_PROXY a filtr wp_polls_trust_proxy, které jsou kompatibilní s pluginy WP-Email a WP-UserOnline, takže weby za Cloudflare nebo vyvažovačem zátěže se mohou přihlásit k používání obvyklých proxy hlaviček, aniž by je musely na obrazovce nastavení specifikovat. Proxy hlavičky jsou i nadále ignorovány, pokud se k jejich používání nepřihlásíte.
  • ZMĚNA: Přizpůsobeno standardům kódování WordPressu. Patnáct překladatelných řetězců bylo doplněno o očíslované zástupné symboly (%1$s), což mění jejich msgid, a proto je nutné tyto řetězce znovu přeložit.
  • AKTUÁLNÍ ZPRÁVA: Řádek s nastavením se nazývá wp_polls_options namísto poll_options, a dva ukazatele verze poll_version a poll_db_version se sloučí do jednoho řádku wp_polls_version, který obsahuje plugin a db. Všechny tři staré řádky jsou při aktualizaci sloučeny a odstraněny.
  • AKTUÁLNÍ ZPRÁVA: Možnosti ankety a Šablony ankety jsou dvě záložky na jedné obrazovce Ankety –> Nastavení, nikoli dvě položky v nabídce. Jejich URL adresy se mění z admin.php?page=wp-polls/polls-options.php a …/polls-templates.php na admin.php?page=wp-polls-settings&tab=options a &tab=templates, přičemž položky „Spravovat ankety“ a „Přidat anketu“ se přesouvají na admin.php?page=wp-polls a ?page=wp-polls-add.
  • AKTUÁLNÍ ZPRÁVA: WP-Polls již nečte ani nezapisuje do sdíleného řádku stats_display pluginu WP-Stats. Zda se blok ankety zobrazí na stránce WP-Stats, se nyní nastavuje v nastavení WP-Polls pod WP-Polls –> Nastavení –> WP-Stats, a WP-Polls přispívá svým blokem prostřednictvím filtru wp_stats_sections. Aktualizujte všech sedm pluginů WP-Stats najednou.
  • AKTUÁLNÍ ZPRÁVA: Každá třída má předponu WP_Polls_: Polls_Options je WP_Polls_Options, Polls_Display je WP_Polls_Display, Polls_Vote je WP_Polls_Vote, Polls_Settings je WP_Polls_Settings, Polls_Install je WP_Polls_Install, Polls_Widget je WP_Polls_Widget, Polls_List_Table je WP_Polls_List_Table, Polls_Templates je WP_Polls_Template a Polls_Core je jednoduše WP_Polls. Šablonové tagy, zkrácené kódy a všechny háčky wp_polls_* zůstávají beze změny.
  • NOVINKA: WP_POLLS_DB_VERSION vedle WP_POLLS_VERSION a filtr wp_polls_capability pro kontrolu manage_polls.
  • ZMĚNA: Soubory pluginu jsou uspořádány stejně jako u všech ostatních pluginů zde: pět samostatných obrazovek se přesouvá do includes/, styly do css/ a skripty do js/, přičemž soubory jsou pojmenovány podle názvu pluginu. Šablona, která přepisuje soubor polls-css.css, by měla svou kopii přejmenovat na wp-polls.css.
  • ZMĚNA: Lokalizované skriptové objekty jsou wpPollsL10n a wpPollsAdminL10n, které nahrazují pollsL10n a pollsAdminL10n.
  • ZMĚNA: Indikátor načítání se vykresluje pomocí CSS namísto načítání souboru images/loading.gif, takže přebírá barvu motivu, přizpůsobuje se velikosti písma a přestane se animovat u návštěvníků, kteří si vyžádali omezení animací. Soubor images/ byl odstraněn.
  • ZMĚNA: Žádná obrazovka wp-admin již neobsahuje vložený atribut style: stavové zprávy používají třídy notice z jádra a vše, co se načítá skryté, používá třídu .hidden z jádra.
  • ZMĚNA: Šablona front-endu nenastavuje žádné písmo ani barvu textu a její pevně zakódované modré, černé a bílé barvy se mění na currentColor plus vlastnosti --wp-polls-border a --wp-polls-surface. Díky tomu je anketa čitelná i na tmavém motivu bez nutnosti použití druhého stylu.
  • ZMĚNA: Dva bloky <script> vložené přímo do kódu, které obsahovaly prvky na obrazovkách nastavení – náhled hlasovací lišty a tlačítka „Obnovit výchozí šablonu“ – byly přesunuty do souboru js/wp-polls-admin.js.
  • OPRAVENO: Funkce current_time( 'timestamp' ), kterou WordPress označil za zastaralou, byla nahrazena funkcí WP_Polls::now(). Časy hlasování se i nadále ukládají jako lokální pro daný web, takže se nic nemění.
  • POZNÁMKA: Každý filtr a akce, které WP-Polls spouští, nyní obsahují docblock, v němž je zaznamenáno, jaké parametry jsou jim předávány a ve které verzi byly zavedeny.
  • OPRAVENO: Upozornění „maximální povolený počet voleb“ končilo v překládaném řetězci koncovou mezerou a skript k ní přidal ještě jednu vlastní mezeru – číslo tak bylo uvedeno s dvěma mezerami. Tato mezera pochází ze skriptu a je stejná ve všech jazycích.