Widget – seznam kategorií, počet článků v odkazech

Určitě jste si už někdy lámali hlavu nad widgetem, který zobrazuje počet článků v kategorii. Mnozí z vás by si jistě odkazy udělali spíše jako tlačítka, aby čtenář nemusel najíždět přímo na text, ale stačilo by být někde v těch místech. V takovém případě jste ale nemohli zobrazovat počet článků v každé z kategorií, protože […]

WordPress a prázdné hledání

WordPress má, minimálně od verze 3.0, starší jsem na svém localhostu nainstalovanou nenašel, zajímavou vlastnost. A sice, že pokud stisknete tlačítko „Hledat“, a to ať myší či přes klávesnici, bez toho, aniž byste zadali hledaný výraz, načte se stránka čerpající ze šablony pro index.php, namísto toho, aby došlo k užití šablony search.php.

Co to má za následek? To, že se uživateli namísto zprávy o tom, že hledání bylo neúspěšné, což mi, a nejen mě, přijde jako logické chování, zobrazí výpis příspěvků na blogu stejně, jako by šlo o stránku s výpisem příspěvků – nedojde ani k přesměrování na úvodní stránku.

Ovšem každý problém má své řešení. Když jsem na toto narazil, chvíli jsem o této problematice něco hleda a narazil jsem na polovičaté řešení uživatele spitzerg. Ten přišel s jednoduchým filtrem, který stačí vložit do souboru functions.php:

add_filter( 'request', 'my_request_filter' );
function my_request_filter( $query_vars ) {
    if( isset( $_GET['s'] ) && empty( $_GET['s'] ) ) {
        $query_vars['s'] = " ";
    }
    return $query_vars;
}

Ovšem toto není dostačující. Tím, že se vyhledávací řetězec změní z prázdného na mezeru, dojde sice k přesměrování na šablonu search.php, ovšem mezi výsledky se objeví všechyn stránky, jelikož nějakou tu mezeru snad každý příspěvek obsahuje.

Je nutné tedy modifikovat také kód souboru šablony search.php. V šabloně Twenty Eleven vypadá obsah tohoto souboru takto:



		

<?php printf( __( 'Search Results for: %s', 'twentyeleven' ), '' . get_search_query() . '' ); ?>

Náš problém vyřeší úprava první podmínky tak, aby nevyhodnocovala pouze to, zda-li náš řetězec odpovídá nějakému výsledku, ale také to, zda-li náš řetězec neobsahuje pouhou mezeru:



		
...

A tím je problém WordPress s prázdným vyhledáváním zobrazujícím výpis příspěvků vyřešen kompletně.

WordPress a obsah rozdělen do více sloupců

V případě, že vytváříte web, kde má být obsah příspěvků či stránek rozdělen do více sloupců, můžete zkusit připravit vlastní řešení s pomocí elementů div a nebo se spolehnout na plugin. Plugin je v tomto případě mnohem pohodlnější řešení, navíc lze kód pluginu nakopírovat přímo do souboru functions.php a nespoléhat se na to, že jej nezapomenete nainstalovat, pokud tuto funkcionalitu chcete zabudovat přímo do šablony. Pokud již šablonu máte hotovou a jen chcete využít možnost rozdělení obsahu do sloupců, kopírování do souboru functions.php není nutné.

Instalace pluginu na rozdělení do více sloupců

Asi nejjednodušším a dobře fungujícím pluginem je plugin Magazine columns od autora c.bavota. Není nutné jej stahovat z WordPress Plugin Directory, rozbalovat a nahrávat jej skrze FTP do adresáře /wp-content/plugins. Je k nalezení také skrze instalaci pluginů v administraci WordPressu, kdy stačí vyhledat „magazine columns“ a dát instalovat.

Použití pluginu pro rozdělení obsahu do více sloupců

Jakmile je zmíněný plugin nainstalovaný a aktivovaný, stačí při psaní příspěvku či stránky přepnout z Visual do HTML (dvě záložky nad hlavním oknem pro tvorbu příspěvků) a vložit kód <!–column–> za místo, kde chcete obsah zalomit do dalšího sloupce. Přepnutí do módu editace HTML je nutný, jinak WordPress sám automaticky převede značky do html entit a ty nebudou poté správně rozpoznány a plugin nebude fungovat. Sloupců lze takto vytvořit maximálně 5. Tedy značku užít 4x.

Použití sloupců pouze na části obsahu příspěvku/stránky ve WordPressu

Autor myslel i na situaci, kdy chcete do sloupců rozdělit pouze jednu část obsahu. V tom případě je nutné vložti více značek do kódu, ale nejde o nic komplikovaného. Opět úpravu provádíme v HTML módu.

Na místo, odkud chceme sloupce používat vložímě kód <!–startcolumns–> a na místo, kde chceme se sloupci přestat potom <!–stopcolumns–>. Obsah mezi těmito značkami rozdělíme do sloupců pomocí již zmíněného kódu <!–column–>.

Zdrojový kód pluginu neumožňuje vytvořit na jedné stránce více než jednu část, která je rozdělena do sloupců, bohužel.

Nedostatky pluginu pro více sloupců a jejich odstranění

Plugin má jednu nevýhodu. Ne všichni ji musí nutně zaznamenat, ovšem pokud v obsahu, který rozdělujete do více sloupců chcete použít napřípklad plugin NexGen Gallery, nebude vám fungovat.

Vlastně nebude fungovat žádný plugin, který využívá technologii shortcode ( [shortcode] ).

Příčinou je autorova nesprává práce s filtry, jak správně poznamenal uživatel lukeyates1981, který také zveřejnil způsob, jak tento bug odstranit.

Abyste se nemuseli prodírat jeho popisem chyby a popisem jak chybu odstranit, přikládám zde již opravený zdrojový kód pluginu verze 1.0.4 ke stažení: magazine-columns.php

Soubor stačí rozbalit a přepsat jím stávající soubor magazine-columns.php v adresáří /wp-content/plugins/magazine-columns/

Dejte ovšem pozor, při případné aktualizaci pluginu, ať již manuální či automaticky staženou, dojde k přepsání této opravy. Pro případ, že by autor aktualizoval plugin a chybu neopravil, bude nutné znovu stávající soubor přepsat.

WordPress a obsah rozdělen do více sloupců

V případě, že vytváříte web, kde má být obsah příspěvků či stránek rozdělen do více sloupců, můžete zkusit připravit vlastní řešení s pomocí elementů div a nebo se spolehnout na plugin. Plugin je v tomto případě mnohem pohodlnější řešení, navíc lze kód pluginu nakopírovat přímo do souboru functions.php a nespoléhat se na to, že jej nezapomenete nainstalovat, pokud tuto funkcionalitu chcete zabudovat přímo do šablony. Pokud již šablonu máte hotovou a jen chcete využít možnost rozdělení obsahu do sloupců, kopírování do souboru functions.php není nutné.

Instalace pluginu na rozdělení do více sloupců

Asi nejjednodušším a dobře fungujícím pluginem je plugin Magazine columns od autora c.bavota. Není nutné jej stahovat z WordPress Plugin Directory, rozbalovat a nahrávat jej skrze FTP do adresáře /wp-content/plugins. Je k nalezení také skrze instalaci pluginů v administraci WordPressu, kdy stačí vyhledat „magazine columns“ a dát instalovat.

Použití pluginu pro rozdělení obsahu do více sloupců

Jakmile je zmíněný plugin nainstalovaný a aktivovaný, stačí při psaní příspěvku či stránky přepnout z Visual do HTML (dvě záložky nad hlavním oknem pro tvorbu příspěvků) a vložit kód <!–column–> za místo, kde chcete obsah zalomit do dalšího sloupce. Přepnutí do módu editace HTML je nutný, jinak WordPress sám automaticky převede značky do html entit a ty nebudou poté správně rozpoznány a plugin nebude fungovat. Sloupců lze takto vytvořit maximálně 5. Tedy značku užít 4x.

Použití sloupců pouze na části obsahu příspěvku/stránky ve WordPressu

Autor myslel i na situaci, kdy chcete do sloupců rozdělit pouze jednu část obsahu. V tom případě je nutné vložti více značek do kódu, ale nejde o nic komplikovaného. Opět úpravu provádíme v HTML módu.

Na místo, odkud chceme sloupce používat vložímě kód <!–startcolumns–> a na místo, kde chceme se sloupci přestat potom <!–stopcolumns–>. Obsah mezi těmito značkami rozdělíme do sloupců pomocí již zmíněného kódu <!–column–>.

Zdrojový kód pluginu neumožňuje vytvořit na jedné stránce více než jednu část, která je rozdělena do sloupců, bohužel.

Nedostatky pluginu pro více sloupců a jejich odstranění

Plugin má jednu nevýhodu. Ne všichni ji musí nutně zaznamenat, ovšem pokud v obsahu, který rozdělujete do více sloupců chcete použít napřípklad plugin NexGen Gallery, nebude vám fungovat.

Vlastně nebude fungovat žádný plugin, který využívá technologii shortcode ( [shortcode] ).

Příčinou je autorova nesprává práce s filtry, jak správně poznamenal uživatel lukeyates1981, který také zveřejnil způsob, jak tento bug odstranit.

Abyste se nemuseli prodírat jeho popisem chyby a popisem jak chybu odstranit, přikládám zde již opravený zdrojový kód pluginu verze 1.0.4 ke stažení: magazine-columns.php

Soubor stačí rozbalit a přepsat jím stávající soubor magazine-columns.php v adresáří /wp-content/plugins/magazine-columns/

Dejte ovšem pozor, při případné aktualizaci pluginu, ať již manuální či automaticky staženou, dojde k přepsání této opravy. Pro případ, že by autor aktualizoval plugin a chybu neopravil, bude nutné znovu stávající soubor přepsat.

Rozdělení obsahu do více sloupců

V případě, že vytváříte web, kde má být obsah příspěvků či stránek rozdělen do více sloupců, můžete zkusit připravit vlastní řešení s pomocí elementů div a nebo se spolehnout na plugin. Plugin je v tomto případě mnohem pohodlnější řešení, navíc lze kód pluginu nakopírovat přímo do souboru functions.php a nespoléhat se na to, že jej nezapomenete nainstalovat, pokud tuto funkcionalitu chcete zabudovat přímo do šablony. Pokud již šablonu máte hotovou a jen chcete využít možnost rozdělení obsahu do sloupců, kopírování do souboru functions.php není nutné.

Instalace pluginu na rozdělení do více sloupců

Asi nejjednodušším a dobře fungujícím pluginem je plugin Magazine columns od autora c.bavota. Není nutné jej stahovat z WordPress Plugin Directory, rozbalovat a nahrávat jej skrze FTP do adresáře /wp-content/plugins. Je k nalezení také skrze instalaci pluginů v administraci WordPressu, kdy stačí vyhledat “magazine columns” a dát instalovat.

Použití pluginu pro rozdělení obsahu do více sloupců

Jakmile je zmíněný plugin nainstalovaný a aktivovaný, stačí při psaní příspěvku či stránky přepnout z Visual do HTML (dvě záložky nad hlavním oknem pro tvorbu příspěvků) a vložit kód <!–column–> za místo, kde chcete obsah zalomit do dalšího sloupce. Přepnutí do módu editace HTML je nutný, jinak WordPress sám automaticky převede značky do html entit a ty nebudou poté správně rozpoznány a plugin nebude fungovat. Sloupců lze takto vytvořit maximálně 5. Tedy značku užít 4x.

Použití sloupců pouze na části obsahu příspěvku/stránky ve WordPressu

Autor myslel i na situaci, kdy chcete do sloupců rozdělit pouze jednu část obsahu. V tom případě je nutné vložti více značek do kódu, ale nejde o nic komplikovaného. Opět úpravu provádíme v HTML módu.

Na místo, odkud chceme sloupce používat vložímě kód <!–startcolumns–> a na místo, kde chceme se sloupci přestat potom <!–stopcolumns–>. Obsah mezi těmito značkami rozdělíme do sloupců pomocí již zmíněného kódu <!–column–>.

Zdrojový kód pluginu neumožňuje vytvořit na jedné stránce více než jednu část, která je rozdělena do sloupců, bohužel.

Nedostatky pluginu pro více sloupců a jejich odstranění

Plugin má jednu nevýhodu. Ne všichni ji musí nutně zaznamenat, ovšem pokud v obsahu, který rozdělujete do více sloupců chcete použít napřípklad plugin NexGen Gallery, nebude vám fungovat.

Vlastně nebude fungovat žádný plugin, který využívá technologii shortcode ( [shortcode] ).

Příčinou je autorova nesprává práce s filtry, jak správně poznamenal uživatel lukeyates1981, který také zveřejnil způsob, jak tento bug odstranit.

Abyste se nemuseli prodírat jeho popisem chyby a popisem jak chybu odstranit, přikládám zde již opravený zdrojový kód pluginu verze 1.0.4 ke stažení: magazine-columns.php

Soubor stačí rozbalit a přepsat jím stávající soubor magazine-columns.php v adresáří /wp-content/plugins/magazine-columns/

Dejte ovšem pozor, při případné aktualizaci pluginu, ať již manuální či automaticky staženou, dojde k přepsání této opravy. Pro případ, že by autor aktualizoval plugin a chybu neopravil, bude nutné znovu stávající soubor přepsat.

Cron View

Víte co je to Cron? Pokud ne, tak byste si rychle měli doplnit základní vzdělání. Pomocí něj totiž můžete naplánovat automatické spouštění php scriptů. Využít se to dá nejrůznějšími způsoby – automatické rozesílání emailů v určitou hodinu, dále různé složité operace s databází, které se nemusí provádět každou chvíli. Díky cronu můžete třeba nastavit automatické […]

oEmbed HTML5 audio

Dělal jsem pro svůj jiný webový projekt článek a týkal se hudby, konkrétně skladeb, které vydal jistý server. Pochopitelně mě napadlo, že by bylo hezké, kdyby si čtenáři mohli ty audio soubory poslechnout rovnou v článku. A nejlepší by bylo, kdyby to bylo udělané pomocí nového standardu HTML5 audio.

Hned mě napadlo, že to je ideální možnost využití technologie oEmbed, kterou používá redakční systém WordPress. Jenže ouha, nenašel jsem nic, co by se mi líbilo. Nezbylo tedy než napsat své vlastní řešení.

Výsledkem je tedy plugin, který umožní extrémně jednoduše vkládat do příspěvků ve WordPressu audio soubory tak, že si je čtenáři mohou přímo z webu pustit a poslechnout. Jednoduché znamená, že do článku vložíte webovou adresu na audio soubor jako samostatný odstavec a o záměnu na audio přehrávač se již automaticky postará WordPress. Tento princip samozřejmě není moje zásluha, to je obecná vlastnost technologie oEmbed, kterou jsem použil, já to jen rozšířil o podporu audia.

Zadejte adresu ukazující na MP3 soubor jako samostatný odstavec

Možná Vás napadlo, že když jsem výše zmínil použití HTML5 pro audio přehrávač, jak na tom asi budou uživatelé se staršími přehrávači. Pochopitelně mě taková otázka také napadla a nehodil jsem je přes palubu. Plugin poskytuje také záložní řešení ve formě MP3 přehrávače napsaného ve Flashi (ten pochází od Googlu). Tento záložní přehrávač je použit nejen v případě, že webový prohlížeč je starší a nepodporuje HTML5, ale i v případech, kdy moderní prohlížeč z nějakého důvodu nepodporuje formát MP3 (to se týká Firefoxu a Opery). Bohužel záložní přehrávač umí pouze formát MP3 a tak nefunguje na formáty OGG nebo WAV.

A v prohlížeči se namísto adresy zobrazí audio přehrávač

Pokud by se Vám tedy také hodilo jednoduché vkládání audio přehrávače do vašich stránek postavených na WordPressu, zkuste můj plugin. Uvidíte, budete spokojeni.

Note: There is a file embedded within this post, please visit this post to download the file.

oEmbed HTML5 audio — nový plugin pro WordPress

Dělal jsem pro svůj jiný webový projekt článek a týkal se hudby, konkrétně skladeb, které vydal jistý server. Pochopitelně mě napadlo, že by bylo hezké, kdyby si čtenáři mohli ty audio soubory poslechnout rovnou v článku. A nejlepší by bylo, kdyby to bylo udělané pomocí nového standardu HTML5 audio.

Hned mě napadlo, že to je ideální možnost využití technologie oEmbed, kterou používá redakční systém WordPress. Jenže ouha, nenašel jsem nic, co by se mi líbilo. Nezbylo tedy než napsat své vlastní řešení.

Výsledkem je tedy plugin, který umožní extrémně jednoduše vkládat do příspěvků ve WordPressu audio soubory tak, že si je čtenáři mohou přímo z webu pustit a poslechnout. Jednoduché znamená, že do článku vložíte webovou adresu na audio soubor jako samostatný odstavec a o záměnu na audio přehrávač se již automaticky postará WordPress. Tento princip samozřejmě není moje zásluha, to je obecná vlastnost technologie oEmbed, kterou jsem použil, já to jen rozšířil o podporu audia.

Zadejte adresu ukazující na MP3 soubor jako samostatný odstavec

Možná Vás napadlo, že když jsem výše zmínil použití HTML5 pro audio přehrávač, jak na tom asi budou uživatelé se staršími přehrávači. Pochopitelně mě taková otázka také napadla a nehodil jsem je přes palubu. Plugin poskytuje také záložní řešení ve formě MP3 přehrávače napsaného ve Flashi (ten pochází od Googlu). Tento záložní přehrávač je použit nejen v případě, že webový prohlížeč je starší a nepodporuje HTML5, ale i v případech, kdy moderní prohlížeč z nějakého důvodu nepodporuje formát MP3 (to se týká Firefoxu a Opery). Bohužel záložní přehrávač umí pouze formát MP3 a tak nefunguje na formáty OGG nebo WAV.

A v prohlížeči se namísto adresy zobrazí audio přehrávač

Pokud by se Vám tedy také hodilo jednoduché vkládání audio přehrávače do vašich stránek postavených na WordPressu, zkuste můj plugin. Uvidíte, budete spokojeni.

Note: There is a file embedded within this post, please visit this post to download the file.

Nahrazení řetězce v textu

Opakuje se vám v příspěvcích článků nějaká část kódu v html, která se velmi často opakuje a ztrácíte moře času jejím neustálým kopírováním? Dnes ukážeme jak jednoduchým způsobem vypsat se specifickým stylem například název článku podle ID. Do souboru functions.php (složka šablony) vložte následující kód: function titulek_func( $atts ) { extract( shortcode_atts( array( ‚id‘ => […]