Změna nadpisu widgetu

Určitě jste se už trápili, jak změnit velikost nadpisu ve widgetech. WordPress tuto změnu v administračním rozhraní neumožňuje a tudíž budete muset zasahovat do samotné šablony. V té si najděte soubor functions.php a v něm budete muset opět pátrat, tentokrát po kódu, který vypadá nějak takto:

register_sidebar( array(
'name' => __( 'Primary Widget Area', 'twentyten' ),
'id' => 'primary-widget-area',
'description' => __( 'The primary widget area', 'twentyten' ),
'before_widget' => '<li id="%1$s">',
'after_widget' => '</li>',
'before_title' => '<h3>',
'after_title' => '</h3>',
) );

Nyní stačí upravit nadpis H3 na ten, který požadujete. Třeba H2. Změnu uložte a můžete se těšit z výsledku.

Zjišťování nadřazené stránky

Nyní si ukážeme, jak zjistit rodičovskou stránku aktuálně zobrazené stránky. Může se to hodit v případě, že chcete, aby styl stránky X a jejích podstránek byl jiný, než styl stránky Y a jejích podstránek. Zjištění ID nadřazené stránky se dělá následujícím kódem:

$parent = $post->post_parent;
if($parent == 0) $parent = $post->ID;

Na základě proměnné parent pak můžeme určit jaký styl se má do stránky načíst. Výsledný kód by pak vypadal takto:

if(get_the_title($parent) == "Bla a bla a bla") echo "<link rel='stylesheet' type='text/css' href='styl1.css' />"
else echo  "<link rel='stylesheet' type='text/css' href='styl2.css' />"

Pokud je název aktuální či nadřazené stránky roven Bla a bla a bla načte se styl1.css v opačném případě pak styl2.css.

Spammer Blocker je na světě již celý rok

Před rokem, dne 27. 5. 2010, jsem do repozitáře WordPressu nahrál první verzi svého pluginu Spammer Blocker. SB byl již třetím pluginem v pořadí, na kterém jsem tehdy pracoval a tříbil si své znalosti PHP. Na rozdíl od mých prvních dvou pluginů, jejichž vývoj jsem dávno pozastavil (Validation Helper a Extra Security), se Spammer Blocker […]

Omezení počtu slov ve výpisu přípěvků

Příspěvek lze v šabloně vypisovat dvěma způsoby. Buď jako the_content, kdy se vypíše celý nebo jako the_excerpt, kdy se zobrazí pouze prvních 55 slov. Pokud nechcete vaše články zkracovat přes tag more můžete využít právě automatického zkracování pomocí excerpt. Problém ale nastává pokud chcete nějak limit slov změnit. Do souboru function.php ve vaši šabloně vložte následující kód:

function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');

Překlad počtu komentářů

Určitě jste se s tím setkali. Po projití desítek webů s šablonami konečně naleznete takovou, která je natolik levná, že kvůli ní nemusíte posílat svoje poslední spodky na aukro a zároveň se jeví natolik hezky, že se za ní nemusíte ani trochu stydět. Je samozřejmě v angličtině a na nějakou vícejazyčnost vám z vysoka kašle. Ručně tedy upravujete šablonu, řádek po řádce se snažíte přeložit každé anglické slovíčko. Ale ejhle, jakmile narazíte na komentáře, jsou na ně vaše překladatelné schopnosti krátké. Čeština je natolik vymyšlená, že potřebujete hned čtyři verze – žádné komentáře, 1 komentář, 2-4 komentáře a 5 a více komentářů. Šablona vám ale nabízí jen tři možnosti (viz. níže), co tedy dál?

comments_number('Add Comment &#187;','1 Comment &#187;','% Comments &#187;');

Tímto kódem jsou komentáře obvykle vkládány. Zápis se ale může lišit šablonu od šablonu od šablony, ale po chvíli hledání byste ho měli být schopni najít. Abychom se skamarádili s češtinou, tak vytvoříme vlastní funkci, která bude naše komentáře vkládat. Tu vložíme do souboru functions.php, jež je standardní součástí všech šablon.

function pocetKomentaru(){
	$pocetKomentaru = get_comments_number();
	if(comments_open()){
		if($pocetKomentaru == 0) $komentText = "Žádné komentáře";
		elseif($pocetKomentaru == 1) $komentText = "1 komentář";
		elseif($pocetKomentaru < 5) $komentText = $pocetKomentaru . " komentáře";
		else $komentText = $pocetKomentaru . " komentářů";
		return "<a href='" . get_comments_link() ."'>". $komentText."</a>";
		}
	else return "Komentáře byly vypnuty";
	}

Co se ve funkci děje? Nejdřív zjistíme počet komentářů u příspěvku, slušně se WordPressu zeptáme jestli jsou komentáře povolené a následně podle počtu vrátíme příslušný text. Radujme se a slavme, naše funkce je hotová a plně použitelná. Do kódu šablony stačí vložit:

echo pocetKomentaru();

a komentáře se již zobrazují hezky česky.

Zobrazování substránek v menu

Dnes si ukážeme, jak správně pracovat se substránkami v menu. Budeme se snažit, aby se podstránky zobrazily pouze v případě, že jsme aktuálně na stránce rodiče nebo sourozence. Toho dosáhneme pomocí funkce wp_list_pages() a kaskádových stylů.

Prvním krokem se stane vytvoření samotného systému substránek:

Vzniklý kód pak musíme správně nastylovat. To nám umožní wordpress, který chytře vypisuje hodnotu class na jednotlivé položky menu.

.page_menu ul.children {display: none}
.page_menu li.current_page_ancestor ul,.page_menu li.current_page_item ul {display: block}

Vy výchozím stavu se tedy všechny podstránky skryjí, ale pokud je aktivní rodič nebo sourozenec, tak se zaktivní. Jak jednoduché, jak prosté.

Tlačítka sociálních sítí

Můžete je nemít rádi, můžete je proklínat, můžete jim dokonce slibovat věčná muka v plamenech pekelných, ale sociální sítě to neodradí. Možná spíše posílí. Jejich slizká chapadla se budou nadále plížit temnými uličkami internetu. Pokud se tedy nechcete vehementně bránit a naopak jim toužíte otevřít svá vrátka, tak dnešní článek je určen přesně pro vás.

Přidat tlačítko sociální sítě do článku nebo stránky je v celku jednoduché. Stačí do šablony plácnout kód, který vám twitter a facebook nabízí na zlatavém talíři. Aby se ale tlačítka vázala ke konkrétním článkům, když jsou zobrazeny ve vyšších počtu, je třeba provést jisté zásahy. Jako první pán na holení se nám hlásí twitter. Máme možnost nastavit svůj twitter účet, url článku a název článku. Potřebný kód vypadá takto:

<a href="http://twitter.com/share" data-url="<?php the_permalink(); ?>" data-text="<?php the_title(); ?>" data-count="vertical" data-via="fabulatorcz">Tweet</a><script type="text/javascript" src="https://platform.twitter.com/widgets.js"></script>

Facebookovské tlačítko „líbí se mi“ je ještě o kousek jednodušší, protože po nás chce jen permalink. Tak na nic nečekejme a nakrmme ho.

<iframe src="https://www.facebook.com/plugins/like.php?href=<?php the_permalink(); ?>&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font=lucida+grande&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>

A nyní mohou vaši sociálně chtivý návštěvníci sdílet se svými přáteli informace z pohodlí vašeho webu.

Správný plugin si po sobě vždy uklidí

Uživatelé WordPressu zpravidla vědí, že veškeré nastavení jejich blogu včetně nastavení nainstalovaných pluginů se ukládá do MySQL databáze. Nicméně většina z nich žije v mylné představě, že po odinstalaci (= smazání) pluginu se pluginem vytvořená data automaticky odstraní. Takhle to však v reálu nefunguje, čehož si můžou všimnout všichni, kteří se alespoň občas hrabou ve […]

Jak zjednodušit databázové dotazy když nepotřebujete stránkování?

Chystaný WordPress 3.2 se zaměřuje hlavně na optimalizaci a zrychlení načítání webu a v této souvislosti byl objeven docela zajímavý trik. Jde o „neveřejný“ parametr no_found_rows, který může být využit např. ve funkcích query_posts(), WP_Query() či get_posts(), ale skoro nikdo o něm neví a moc se nepoužívá, i když dokáže v mnoha případech zjednodušit některé prováděné […]