Zbytky po escapování v menu

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Zbytky po escapování v menu

Zvolené téma obsahuje celkem 7 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel  admin a poslední změna je stará 11 let, 12 měsíců.

Aktuálně je na stránce zobrazeno 8 příspěvků - 1. až 8. (z celkem 8)
  • Autor
    Příspěvky
  • #1837

    roboti006
    Participant

    Ahoj. Dneska jsem tak ze srandy, kliknul na tlačítko v prohlížeči, které kontroluje kód, a vyšlo mi pár drobných nesmyslů, vzniklých podle mně při escapování (“) uvozovek ve WP. Nevím jestli to dělá všem, ale mě to v HTML našlo toto:

    <li id=""menu-hlavni"" class=""menu""></li>

    odkaz na test je tady. Mně to zatím nic vážného neudělalo, ale mohlo by to udělat i vážnější chyby, nehledě k tomu, že vyhledávače hledají přednostně validní kód, myslím. Díky za diskusi

    #12162

    admin
    Keymaster
    Web

    Ano, tento HTML kód je opravdu na webu. Těžko říci, jak se to tam dostalo, ale patrně máš nějaké špatné parametry u funkce wp_nav_menu() pro zobrazení menu (pokud je tam použita). Když přepneš na nějakou výchozí šablonu (např. Twenty Eleven), tak by to mělo být bez problémů…

    #12163

    roboti006
    Participant

    Tak to bylo tím. Netušil jsem, že zkopírování z Kodexu bude mít tak zlé následky

    #12164

    admin
    Keymaster
    Web

    Samotné zkopírování z manuálu WordPressu nemůže mít žádné zlé následky, uvedené příklady jsou tam převážně správné. V čem byl tedy problém?

    #12165

    roboti006
    Participant

    Jak jsem řekl, při tvorbě šablony jsem zkopíroval z příkladu v kodexu toto:

    <?php $defaults = array(
    'theme_location' => ,
    'menu' => ,
    'container' => 'div',
    'container_class' => 'menu-{menu slug}-container',
    'container_id' => ,
    'menu_class' => 'menu',
    'menu_id' => ,
    'echo' => true,
    'fallback_cb' => 'wp_page_menu',
    'before' => ,
    'after' => ,
    'link_before' => ,
    'link_after' => ,
    'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
    'depth' => 0,
    'walker' => );
    ?>
    <?php wp_nav_menu( $defaults ); ?>

    bohužel jsem si neudělal práci, ověřit jaká je použita uvozovka u items_wrap, a informaci, že se v tom případě nemusí escapovat. Na to jsem ale narazil až teď, a v kódu to bylo asi proto, že byl parametr uzavřen v jiných uvozovkách, a tak tedy escapování nemohlo fungovat… Říkám to správně?? :D

    #12166

    admin
    Keymaster
    Web

    Hmmm, pravda, ten příklad v manuálu je nějak špatně naformátovaný, správně by to mělo být podle mě asi takto:

    <?php $defaults = array(
    'theme_location' => '',
    'menu' => '',
    'container' => 'div',
    'container_class' => '',
    'container_id' => '',
    'menu_class' => 'menu',
    'menu_id' => '',
    'echo' => true,
    'fallback_cb' => 'wp_page_menu',
    'before' => '',
    'after' => '',
    'link_before' => '',
    'link_after' => '',
    'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
    'depth' => 0,
    'walker' => '' );
    ?>

    Bez chybějících apostrofů to fungovat nebude, stejně tak to escapování tam je špatně.

    Každopádně je to pouze ukázkové výchozí nastavení této funkce, takže parametry, které nechcete měnit není třeba vůbec zapisovat, vhodnější příklady naleznete dole na stránce v manuálu.

    #12167

    roboti006
    Participant

    Tak jasně, mám to tam jinak v té šabloně, tam jsem zrušil zpětná lomítka a funguje to dál, chtěl jsem poukázat na možnou chybu v příkladech (na to by asi člověk postupně přišel sám, ale pro zjednodušení…), aby to obzvlášť nováčky (jako já ;) nezmátlo.

    #12168

    admin
    Keymaster
    Web

    Zajímavá náhoda, zrovna to začali řešit i vývojáři WordPressu a už by to mělo být v manuálu (Codex) opraveno.

Aktuálně je na stránce zobrazeno 8 příspěvků - 1. až 8. (z celkem 8)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.