WordPress – obsah na stránce a jejích potomcích

Problém

Chceme zobrazit nějaký konkrétní obsah na stránce a všech jejích potomcích. Například obrázek, který bude shodný pro všechny stránky, které tématicky zapadají do jedné kategorie webu. To znamená na rodičovské stránce a zároveň všech jejích podstránkách.

Řešení

Nejdříve je třeba vyrobit funkci, která zjistí kořenového rodiče podstránky. Tu vložíme do souboru functions.php. Vypadat bude následovně:

function get_root_parent($page_id)
{
global $wpdb;
$parent = $wpdb->get_var("SELECT post_parent FROM $wpdb->posts WHERE post_type='page' AND ID = '$page_id'");
if ($parent == 0)

return $page_id;

else
return get_root_parent($parent);
}

Rekurzivně projde všechny rodiče až po toho posledního, kořenového.

A nakonec v místě, ve kterém chceme v šabloně zobrazovat obsah zavoláme s příslušným IDčkem nějakou podobnou konstrukci

<?php if ($post->ID == 4 || get_root_parent($post->ID) == 4) { ?>
// obsah
<?php } ?>

Horizontální CSS menu – „space bug“

Při tvorbě horizontálního CSS menu pomocí unordered listu jsem narazil na chybu, která vzniká kvůli použití display: inline, popř. inline-block nad list-itemem unordered listu. Ten má nastaveno display: inline kvůli tomu, aby se položky listu zobrazovaly v řádku. Jenže to je právě příčinou vzniku malé mezery mezi jednotlivými list-itemy. Řešením je nenastavovat list-itemu display: inline, ale místo toho mu dát float: left. Pak už funguje tak jak má.

Automatické odpojení GPRS na HTC Vox

Windows Mobile mají jednu nepříjemnou vlastnost. Pokud se připojíte na GPRS/EDGE a pak ukončíte program, který jej používal, zůstane připojení i nadále aktivní. Když nic jiného, mírně to vybíjí baterii. Řešení je opět v registrech.

V HKEY_LOCAL_MACHINECommConnMgrPlannerSettings se nachází klíč SuspendResume - stačí buď smazat tento klíč nebo jej přejmenovat na něco jiného. Pak dojde k okamžitému odpojení GPRS hned po ukončení programu, který jej využíval.

Chyba podsvícení po instalaci CorePlayeru

Instalace CorePlayer nebo TomTom 5.2 na Windows Mobile vede k rozhození podsvícení – telefon nezhasne displej. Je to známý bug WM, řešení se ukrývá v registrech.

Stačí nastavit (popřípadě ji vytvořit, pokud neexistuje) hodnotu klíče Display, který se nachází v HKCUControl PanelPower např. na 30. Číslo znamená počet vteřin, za které displej úplně zhasne.

Vypnutí threaded SMS ve Windows Mobile 6.1

Jednou z nových features ve WM6.1 je i „vláknový“ (threaded, teď mě nenapadá vhodnější slovo) přístup ke čtení SMS. Osobně to nepovažuji za zrovna nejlepší řešení, protože pokaždé při spuštění Messagingu telefon sahá na SMS a uspořádává je podle odesilatele. Je sice o něco rychlejší vyhledávání, protože SMS jsou tak rozděleny jen podle odesilatelů, na druhou stranu to ale celou aplikaci neuvěřitelně zpomaluje.

Threaded SMS lze vypnout v registrech, a to přidáním klíče SMSInboxThreadingDisabled.

Pro vypnutí vytvořte tento klíč v HKCU/Software/Microsoft/Inbox/SettingsOEM/ a nastavte jeho hodnotu na 1.

Zpětné obnovení probíhá buď nastavením na 0 nebo smazáním klíče.

Pokud by nefungovalo, druhá možnost je

HKCUSoftwareMicrosoftInboxSettings a DWORD SMSAvailable nastavit na 0. Zapnutí threaded sms proběhne nastavením na 1.

Page 2 of 4«1234»