WordPress – Tipy a triky #1

Rád bych se s vámi podělil o pár tipů a triků z praxe tvorby webů založených na redakčním systému Wordpress. V prvním díle tohoto miniseriálu se podíváme na soubor šablony jménem: functions.php. Konkrétně na registraci sidebarů, navigačních menu a definici vlastních šablonovacích funkcí.

Autor:
Jiří Hýbek
Publikováno:
11. 09. 2013
Kategorie:
Zobrazení
Celá obrazovka

Soubor s názvem functions.php je nepovinná součást grafické šablony RS WordPress. Je určen pro zápis vlastních funkcí a pro volání konfiguračních funkcí WP, případně pro aktivaci pokročilých vlastností šablony. V podstatě se jedná o klasický PHP soubor, který je použit (pomocí funkce include) před vykreslením šablony a též i v administraci. Z toho plyne, že pokud v tomto souboru uděláte syntaktickou chybu, nepůjde Vám ani front-end, ani administrace.

Registrace navigačního menu

Navigační menu se zaregistruje pomocí volání funkce register_nav_menu - viz příklad. Prvním parametrem je interní název, druhým parametrem je administrativní popisek.

<?php
register_nav_menu('primary', 'Primary');

Registrace postranního panelu

Postranní panel (sidebar) nám umožňuje v administraci definovat widgety, které se ve vybraném panelu budou zobrazovat. Nejprve je nutné sidebar zaregistrovat ve functions.php, aby WP věděl, že jej šablona podporuje a pak následně implementovat v konkrétní části šablony, nebo-li vykreslit.

Sidebar zaregistrujeme zavoláním funkce register_sidebar – viz příklad. Podrobný popis parametrů naleznete v dokumentaci.

<?php
register_sidebar(array(
   'name' => __( 'Kurzy' ),
   'id' => 'courses',
   'description' => __( 'Kurzy' ),
   'before_title' => '<div class="title">',
   'after_title' => '</div>'df
));

A následně jej implementujeme v šabloně pomocí funkce dynamic_sidebar - viz příklad. Jediným přijímaným parametrem je ID sidebaru (viz funkce výše) a nebo pořadí (index) registrace daného sidebaru. Funkce buď sidebar vykreslí  pokud existuje, a nebo vrátí false pokud neexistuje. Tohoto chování lze využít například pro definování výchozího zobrazení postranního panelu pro případ, že uživatel žádné widgety nenastavil.

<!-- jednoducha varianta -->
<aside id="sidebar">
   <ul>
      <?php dynamic_sidebar('courses'); ?>
   </ul>
</aside>

<!-- varianta s vychozimi widgety -->
<aside id="sidebar">
   <ul>
      <?php if(!dynamic_sidebar('courses')): ?>
         <!-- default widgets -->
         <li class="widget">...</li>
      <?php endif; ?>
   </ul>
</aside>

Vlastní šablonovací funkce

V souboru functions.php můžeme definovat vlastní šablonovací funkce. Například bychom chtěli u každého příspěvku zobrazit jeho otisk (MD5 hash z ID příspěvku). Definice takové funkce by vypadala následovně:

<?php
function post_fingerprint(){
   echo md5(get_the_ID());
}

…a do šablony bychom vložili například:

<article>
   <h2><?php the_title(); ?></h2>
   <section class="content"><?php the_content(); ?></section>
   <footer>Otisk: <?php post_fingerprint(); ?></footer>
</article>

A příště…

se podíváme na konfiguraci náhledových obrázků a definici vlastních velikostí obrázků.