Snížení paměťových nároků až o 20 %

**Pure PHP Localization**
„http://wordpress.org/extend/plugins/pure-php-localization/“:http://wordpress.org/extend/plugins/pure-php-localization/

Converts gettext binary message catalogs to an array of strings. Allows to save some amount of RAM on a shared hosting server. Works with plugin and theme textdomains as well as with the default.

Vhodné zejména pro weby s lokalizačními .po soubory.

Rozbalovací text

**Text Expander**
„http://wordpress.org/extend/plugins/text-expander/“:http://wordpress.org/extend/plugins/text-expander/
„http://en.www.ali.dj/wordpress-plugin-text-expander/“:http://en.www.ali.dj/wordpress-plugin-text-expander/

Allows you to define areas of text that expand/collapse when clicked.
A double-arrow is shown next to the expand-link, which indicates whether the part is collapsed or expanded next.
The expand-part will expand via a jQuery-animation. This looks a lot better, than having the text just appear all of the sudden.

*Alternativy*

**Adjustly Collapse**
„http://wordpress.org/extend/plugins/adjustly-collapse/“:http://wordpress.org/extend/plugins/adjustly-collapse/
„http://www.psdcovers.com/adjustly-collapse/“:http://www.psdcovers.com/adjustly-collapse/

This plugin allows authors to link 2 html elements together as trigger and target. When the trigger is clicked the target will immediately expand to reveal its content.

Údržba databáze

**WP-Cleanup**
„http://wordpress.org/extend/plugins/wp-cleanup/“:http://wordpress.org/extend/plugins/wp-cleanup/

This WordPress plugin will cleanup your WordPress database, which means that it will perform the following actions:

– Remove all post revisions
– Remove all spam comments
– Remove all unapproved comments
– Remove all unused tags
– Remove all unused post meta
– Optimize MySQL tables by removing all unused table space

**Optimize Database after Deleting Revisions**
„http://wordpress.org/extend/plugins/rvg-optimize-database/“:http://wordpress.org/extend/plugins/rvg-optimize-database/

A ‚One Click‘ WordPress Database Cleaner / Optimizer.

– Deletes redundant revisions of posts and pages (you optionally can keep an ‚x‘-amount of the most recent revisions)
– Deletes trashed posts, pages and comments (optional)
– Deletes spammed comments (optional)
– Deletes ‚orphan postmeta items‘
– Optimizes the database tables (optionally you can exclude certain tables from optimization)
– Creates a log file of the optimizations (optional)
– Optimization can be scheduled to automatically run once hourly, twice daily, once daily or once weekly (optional)

**Plugins Garbage Collector**

Vymaže tabulky po deaktivovaných a nepoužívaných pluginech.
„http://wordpress.org/extend/plugins/plugins-garbage-collector/“:http://wordpress.org/extend/plugins/plugins-garbage-collector/

Hromadná instalace pluginů

**Improved Plugin Installation**
„http://wordpress.org/extend/plugins/improved-plugin-installation/“:http://wordpress.org/extend/plugins/improved-plugin-installation/

This plugin is an improvement to the current WordPress plugin installation methods. It allows you to install one or more plugins simply by typing their names or download URLs in a textarea.

The installation form will happily accept any of these inputs:
– http://wordpress.org/extend/plugins/plugin-name/
– http://downloads.wordpress.org/plugin/plugin-name.zip
– http://www.example.com/plugin-name.zip

Stačí tedy nainstalovat pouze tento jediný plugin, a do textarea zkopírovat seznam požadovaných pluginů.

Jak získat post ID mimo loop

Získat ID aktuálního příspěvku mimo loop se může někdy hodit. Jak na to?

Tak záleží na tom jak s ID potřebujeme nakládat. Mimo loop můžeme na šabloně zobrazující pouze jeden příspěvek (typicky single.php nebo sidebar této šablony) přistupovat přímo k objektu $post

$postID = $post->ID;

Jde ale o globální proměnnou, proto, když k ní chceme přistupovat z nějaké funkce, musíme se k ní dle toho zachovat:

function moje_funkce(){
  global $post;
  $postID = $post->ID;
}

Jak jsem výše zmínil, takto lze bezprobémově přistupovat pouze k ID příspěvku při zobrazení na single.php. Pokud tedy chceme pracovat s ID aktuálního příspěvku například v sidebaru, který se ale zobrazuje i na výpise kategorie, neměli bychom zapomenou na ošetření našeho kódu:

if ( is_single() ) {
  $postID = $post->ID;
}

No a snad jen již pro úplnost, k objektu $post lze přistupovat i krkolomějším způsobem přes objekt $wp_query, který objekt post obsahuje:

global $wp_query;
$postID = $wp_query->post->ID;

Vytváření a úpravy menu s využitím „Walkeru“

Once you have created a menu at your wordpress backend at Appearance > Menus you can use a wordpress function called „wp_nav_menu()“:http://codex.wordpress.org/Function_Reference/wp_nav_menu within your template files to display those menus.

When you are at the Appearance > Menus Site you need to look at the top right and you will notice a “Screen Option” tab. Click it and you will get the option to display several other input fields for each menu item, among them a checkbox to show the description.

A special “Walker” class iterates over each data record and then displays this record accordingly. We can simply create our own custom walker extending that PHP class. That way we dont need to care about fetching the stuff from the database or preparing the data arrays. We only need to extend the part of the wordpress code that outputs the list to functions.php file and add the code

class description_walker extends Walker_Nav_Menu

After we have created a custom walker we only need to tell wordpress that it should use our walker instead of its own. This can be easily done by calling the „wp_nav_menu()“:http://codex.wordpress.org/Function_Reference/wp_nav_menu with the walker parameter set.

Zdroj: „Improve your WordPress Navigation Menu Output“:http://www.kriesi.at/archives/improve-your-wordpress-navigation-menu-output

Kontrola a ochrana šablon (témat)

– „Sucuri Security“:https://wordpress.org/plugins/sucuri-scanner/
– „BulletProof Security“:http://wordpress.org/extend/plugins/bulletproof-security/
– „ServerBuddy“:http://pluginbuddy.com/serverbuddy-check-hosting-quality-security-issues-more/
– „AntiVirus“:http://wordpress.org/extend/plugins/antivirus/
– „Exploit Scanner“:http://wordpress.org/extend/plugins/exploit-scanner/
– „Health Check“:http://wordpress.org/extend/plugins/health-check/
– „Secure WordPress“:http://wordpress.org/extend/plugins/secure-wordpress/
– „TAC (Theme Authenticity Checker)“:http://wordpress.org/extend/plugins/tac/
– „Theme Check“:http://wordpress.org/extend/plugins/theme-check/
– „Ultimate Security Check“:http://wordpress.org/extend/plugins/ultimate-security-check/
– „WordPress File Monitor“:http://wordpress.org/extend/plugins/wordpress-file-monitor/
– „WP Security Scan“:http://wordpress.org/extend/plugins/wp-security-scan/
– „WP-ServerInfo“:http://wordpress.org/extend/plugins/wp-serverinfo/

Zdroj: „WordPress Theme Malware Prevention and Protection“:http://wordcastnet.com/news/2010/12/11/wordpress-theme-malware-prevention-and-protection.html

„Aktualizace hashtagů“:https://github.com/philipjohn/exploit-scanner-hashes pro plugin *Exploit Scanner* a „jak je implementovat“:http://west-penwith.org.uk/blog/archives/2100.

Související článek: „Anatomy of a Theme Malware“:http://ottopress.com/2010/anatomy-of-a-theme-malware/

„Ottův dekodér enkryptovaného textu“:http://ottodestruct.com/decoder.php a „ještě jeden podobný“:http://ottodestruct.com/decoder2.php od stejného autora.

Nastavení počtu revizí a smazání revizí příspěvků

**Delete-Revision**
„http://wordpress.org/extend/plugins/delete-revision/“:http://wordpress.org/extend/plugins/delete-revision/

V *Nastavení > Delete-Revision > Check Redundant Revision* pak lze vymazat zbytečné revize.

**Revision Control**
„http://wordpress.org/extend/plugins/revision-control“:http://wordpress.org/extend/plugins/revision-control

**Optimize Database after Deleting Revisions**
„http://wordpress.org/plugins/rvg-optimize-database/“:http://wordpress.org/plugins/rvg-optimize-database/

One Click WordPress Database Cleaner / Optimizer.

**Řešení bez použití pluginů:**

v souboru wp-config.php možno nastavit
/—code php
// vypne revize
define(‚WP_POST_REVISIONS‘, false );

// ukládá jen definovaný počet revizí
define(‚WP_POST_REVISIONS‘, 2);

// nastaví interval ukládání ve vteřinách
define(‚AUTOSAVE_INTERVAL‘, 60 );
\—

**PHP skript pro hromadné smazání všech revizí :**

/—code php

\—

**Ev. v Myadminu jen SQL příkazem :**

/—code php
DELETE FROM wp_posts WHERE post_type=’revision‘
\—

Integrace Google Analytics

Pro integraci kódu Google analytics existuje „celá řada pluginů“:http://wordpress.org/extend/plugins/tags/google-analytics, nicméně čím méně pluginů je nainstalováno, tím lépe (rychlost, zabezpečení). Dobré řešení je proto vložit kód GA přímo do souboru **functions.php** (Vzhled > Upravit soubory)

/—code php
// Google Analytics Tracking Code
function add_google_analytics() {
?>


Jak vytvořit vlastní (odvozenou) šablonu (child theme)

Snad každý, kdo si nainstaluje WordPress se dřív nebo později pokusí udělat do šablony nějaký zásah. Ovšem nikdy nezasahujte do defaultní šablony (u WordPressu 3.0 a vyšším jde o šablony Twenty Ten v adresáři twentyten). V případě problémů tak budete mít jistotu, že máte šablonu, na kterou můžete přepnou a mít aspoň základní funkční web.

Pro jednodušší úpravy si vytvořte odvozenou šablonu ( Child theme)

V adresáři /wp-content/themes se při defaultní instalaci bez dodatečných šablon nachází jen adresář twentyten s defaultní šablonou. Na této úrovni si vytvořte nový adresář (složku) s názvem vlatní šablony. Třeba “sablona” (vyvarujte se háčkům a čárkám, pro jistotu).

style.css je základ, víc nic nepotřebujete

K vytvoření vlastní odvozené šablony vám stačí jeden jediný soubor v této složce. A sice soubor s názvem “style.css” (malým písmem).

Do tohoto souboru vložíte následující kód:

/*
Theme Name: Šablona
Theme URI: http: //priklad.cz/
Description: Vlastní šablona odvozená od Twenty Ten
Author: Vaše jméno
Author URI: http: //vase-homepage.cz
Template: twentyten
Version:  0.1.0
*/

Theme name je název vaší šablony, ten si zvolte libovolný (pakliže ste si vytvářeli vlastní šablonu z dříve modifikované šablony, přjemenujte si ji tak, aby název byl odlišný od “Twenty Ten”)
Theme URI je adresa vašeho tématu, pokud byste jej třeba někde propagovali a udělali pro něj vlastní webovou stránku, tak zde by byla adresa této propagační stránky. Někdy se také uvádí stránka pro kterou je šablona dělána
Description je popis tématu. Čím bylo inspirováno a podobně
Author: vaše jméno, vašich 15 vteřin slávy ;)
Author URI: pakliže máte nějakou vlastní webovou stránku, šup sem s ní :)
Template: jediný povinný řádek, který nelze vynechat. Musí obsahovat adresář ve kterém je šablona od které je ta vaše odvozena. Pozor, tato položka je case-sensitive (čili je rozdíl mei malými a velkými písmeny)
Version: verze vaší šablony. Buď rovnout 1.0 nebo raději opatrně začněte s 0.1 :)

Opravdu si dejte pozor na položku Template. Ověřte, jestli máte správný název adresáže původní šablony a jestli tato šablona v daném adresáři skutečně je. Pakliže třeba s šablonou nějak manipulujete, může se stát, že šablonu nakopírujete o úroveň níže ( wp-content/themes/twentyten/twentyten ) a pak vám odvozená šablona nebude fungovat.

Dále do souboru style.css patří ještě jeden řádek. A sice tento:

@import url("../twentyten/style.css");

Kde namísto twentyten uvedete stejnou hodnotu, jako u parametru Template. Proč vkládáme tento řádek? Inu proto, že soubor style.css odvozené šablony úplně nahrazuje ten ze šablony původní.Čili, pakliže byste tento řádek nevložili, z původní šablony by se nenahrály vůbec žádné css styly. A to dost pravděpodobně nechcete.

Po tomto řádku již můžete vesele vkládat vlastní styly. Pro orientaci je ještě dobré připomenout, že css má tu vlastnost, že později definované styly přepisují ty dříve uvedené. Tedy, pokud změníte barvu nadpisů h2 v tomto souboru, nepoužije se hodnota nadefinovaná v css původní šablony, i když je celý jeho obsah, díky výše uvedenému řádku, namportován.

functions.php na rozšíření funkcionality

Vedle souboru style.css, který je základním kamenem každé šablony, má spefické vlastnosti ještě soubor functions.php. Jde o soubor, ve kterém uživatel může rozšiřovat funkcionalitu šablony o vlasní funkce. Může si vytvořit vlastní funkce prakticky na cokoli. Mnohé tipy na to co a jak udělat spoléhají právě na tento soubor.

To, co byste měli vědět je to, že tento soubor nepřepisuje soubor functions.php původní šablony, ale načítá se spolu s ním. Přesněji řečeno těsně před ním. Lze tedy nelze takto redeklarovat funkce uvedené v původní šabloně, ale je možné je ve vaší odvozené šabloně bez dalšího užít.

Další soubory odvozené šablony

Tyto dva soubory vám již bohatě stačí k proměně vzhledu a funkcionality šablony. Ovšem můžete chtít také změnit způsob výpisu zobrazení článku, nebo stránky, kategorie či rovnou úvodní stránky. I toto odvozená šablona zvládne. Pakliže adresář odvozené šablony obsahuje nějaký soubor (vyjma style.css a functions.css), který je také v původní šabloně, použije se namísto původního ten, který je obsažený v odvozené šabloně. A pakliže soubor, který by se normálně použil v odvozené šabloně naopak není, použije se ten, který je v šabloně původní. A to je přeci geniální, nemusíte myslet na všechny soubory a jen si měnit to, co přesně potřebujete.

Takže když budete chtít upravit výpis článku, jednoduše si do adresáře své odvozené šablony nakopírujete soubor single.php z původní šablony a začnete editovat. Nic víc, nic míň.

Ještě zde pro vás uvedu jeden velmi důležitý diagram. Ten ukazuje jak WordPress vybírá soubory pro zobrazení konkrétní stránky (příspěvku, rubriky, stránky, stránky s výsledkama hledání a podobně). Všimněte si, že vše má fallback na index.php. Čili, pokud vaše původní šablona některý ze souborů, který byste chtěli editovat nemá, vezměte druhý či třetí, a tak dále, v pořadí, pokud existuje, a pakliže ne, vždy můžete sáhnout po index.php a ten přejmenovat na vámi požadovaný soubor (single.php, page.php, category.php, search.php a tak dále a tak dále).

Zdroj: http://www.wp-tricks.co.il/

Co dělat, když už jste do defaultní šablony zasáhli? Jak z takové šablony udělat odvozenou?

To se stává často. Ale i toto má své řešení. Stáhněte si znovu vaší instalaci WordPressu (anglicky: http://wordpress.org/, nebo česky: http://cs.wordpress.org/), rozbalte archív a v adresáři wp-content/themes uvidítě původní šablonu. Adresář s šablonou přejmenujte na twentyten2 a nakopírujte jej do vaší instalace na serveru do složky wp-content/themes. V administraci aktivujte tuto staronovou šablonu. Bude mít stejný název, ale v šedivém obdélníčku následujícím za větou: “Všechny soubory této šablony jsou uloženy v” uvidíte “themes/twentyten2″.

Poté můžete již přejmenovat adresář vaší šablony (z twentyten) na vlastní název a změnit název šablony v souboru style.css (řádek Theme name). Nyní musíte v administraci opět aktivovat tuto vaší šablonu (již se bude zobrazovat  pod vaším jménem). Po její úspěšné aktivaci přejmenujte adresář “twentyten2″ na “twentyten”. Tím umožníte budoucí aktualizaci této šablony v novějších verzích WordPressu.

No a nyní již zpět k vaší odvozené šabloně. Do souboru style.css přidejte řádek “Template: twentyten”. Samozřejmě můžete veškerý další obsah souboru style.css smazat a nahradit jej importovacím řádkem. Dalším důležitým krokem je smazání všech funkcí v souboru functions.php (pakliže neobsahuje nějaké vámi definované, ty můžete zachovat). No a poté už můžete mazat všechny soubory, které jste doposud neupravili. Pakliže ste neupravovali soubor 404.php a víte, že jej upravovat ani nebudete, klidně jej smažte. Obdobně pro všechny soubory, které jste neupravovali, ani upravat chtít nebudete.

A kde je nějaká výhoda odvozených šablon?

Možná se ptáte, proč podstupovat toto martýrium a proč si rovnou nenakopírovat celý adresář twentyten do vlastního názvu a nepřepsat název šablony ve style.css a mít tak již kompletní šablonu a neupravovat ji komplet?

Odvozené šablony vám umožní bezpečný upgrade vaší původní šablony. Pakliže budoucí verze WordPressu upgraduje šablonu Twenty Ten, bude vaše odvozená šablona čerpat upgradovaný soubor functions.php, upgradovaný index.php (pakliže nemáte vlastní) a také upgradovaný style.css. Totéž platí o šabloně, kterou si někde koupíte a její autor vydá další, třeba opravnou, verzi. Můžete si poté upgradovat původní šablonu bez toho, anižbyste přišli o své úpravy. Jde tedy především o bezpečnou úpravu šablon.

Reference:

http://codex.wordpress.org/Child_Themes

http://codex.wordpress.org/Template_Hierarchy