Přidání Custom Post Types do nejnovějších příspěvků

wordpress-code

WordPress v základní instalaci nabízí několik základních widgetů, kterými lze oživit webové stránky. Jedním z nich je i widget, který zobrazuje nejnovější příspěvky. Zde na webu je použit a tak pokud jej neznáte, můžete si jej prohlédnout.

Widget se jednoduše vezme, přetáhne se na místo, na kterém jej chcete mít na webu, a od té doby tam zobrazuje vámi určený počet příspěvků. Základní problém tohoto widgetu je ten, že zobrazuje jen a pouze nejnovější příspěvky. Pokud ovšem využíváte Custom Post Types, jako je to zde na webu, tak může nastat komplikace. Našimi vlastními typy příspěvků jsou seriály, ty jsou řazeny zvlášť. U tohoto velmi často narazíte na problém. Nové vlastní typy příspěvků se v tomto widgetu nebudou zobrazovat, což je jistě veliká škoda a někdo by možná uvítal, aby tomu bylo jinak. Proto se pojďme podívat na to, co je zapotřebí pro to, aby se zobrazovalo vše tak, jak potřebujete.

Najdeme si třídu, která se jmenuje WP_Widget_Recent_posts, jde o rozšíření funkce WP_Widget. Tuto třídu najdete v souboru default-widgets.php, umístěného ve složce wp-includes. V této funkci je následující kus kódu:

$r = new WP_Query( apply_filters( 'widget_posts_args', array(

'posts_per_page' => $number,

'no_found_rows' => true,

'post_status' => 'publish',

'ignore_sticky_posts' => true

) ) );

Ten sám o sobě vypadá ne příliš přátelsky, protože tam není nic, co by indikovalo, co konkrétně jde vybrat a jak přidat to, co potřebujete. Naštěstí stačí přidat naprosto jednoduchý kód, který vypadá asi takto:

'post_type' => array('post','PHGame_serialy'),

Tedy výsledek se bude tvářit takto, když to do této části vložíte:

$r = new WP_Query( apply_filters( 'widget_posts_args', array(

'posts_per_page' => $number,

'no_found_rows' => true,

'post_status' => 'publish',

'post_type' => array('post','PHGame_serialy'),

'ignore_sticky_posts' => true

) ) );

Tímto docílíte toho, že se vám krom posledních příspěvků budou zobrazovat i vaše vlastní typy příspěvků, v našem případě to jsou PHGame_seriály. Tím ale editace nekončí. Pokud chcete nechat zobrazit jen příspěvky, nebo jen stránky či jen vaše vlastní typy příspěvků, stačí takto editovat pouze na váš vlastní typ a rázem máte z nejnovějších příspěvků třeba nejnovější stránky.

Nevýhodou tohoto řešení je fakt, že pokud budete aktualizovat WordPress, o tuto editaci s největší pravděpodobností přijdete. Nejlepším a i nejsprávnějším řešením je zkopírování celé třídy WP_Widget_Recent_posts a vytvoření její kopie v nějakém pluginu, který používáte. Zde by bylo dobré lehce přejmenovat některé věci, jako je třeba název třídy. Ono by si to totiž jinak PHP mohlo vyložit jako provokaci, že máte dvě identické třídy a na důkaz jeho lásky k vám, vyhodit fatal error. Další věc, kterou by bylo dobré změnit, je název. Aby se dala editovat tato třída, kterou jste vytvořili ve widgetech. A hlavně abyste ji poznali od té původní z WordPressu. Zbytek zůstává stejný. Výhoda této změny je ta, že funkci máte ve vlastním widgetu. Nemanipulujete se soubory WordPressu, a tak je možné WordPress pohodlně aktualizovat beze ztráty této změny.

Jediný rozdíl bude, že budete muset ještě navíc přidat add_action s parametrem widgets_init a vytvořit funkci, která bude obsahovat funkci register_widget, protože bez toho se tato funkce nespustí.




Další články

Linux terminál – používáme SSH

SSH je zabezpečený komunikační protokol, který vznikl jako reakce na předchozí nezabezpečené protokoly, jako je například Telnet, rsh atd. Jeho zkratka pochází z anglického Secure Shell – tedy zabezpečený nebo [pokračovat ve čtení… ]

Vypnutí reklam ve hrách a aplikacích na iPhone

Určitě to znáte, zapnete hru či aplikaci a dole je najednou reklama. Co hůř, někdy prostě jen na něco kliknete a začne se přehrávat videoreklama, která ne a ne zmizet. [pokračovat ve čtení… ]

Linux terminál – používáme screen

Linuxový terminál, něco co se snad nemusí nikdy a za žádných okolností představovat. Něco co zná snad každý, kdo někdy v Linuxu něco dělal. Terminál představuje snadný způsob ovládání počítače [pokračovat ve čtení… ]

Waze – skrytá funkce ovládání hlasem

Aplikaci Waze, která se na našich silnicích těší pořád vyšší popularitě, jsme se již jednou věnovali. Tenkrát se jednalo o starší verzi, na kterou jsme psali recenzi. Nyní se však [pokračovat ve čtení… ]

Neustále padá WiFi síť

Dnes se podíváme na jeden docela častý problém, který se týka především notebooku Lenovo, nicméně se tento problém může stávat i na jiném zařízení od jiného výrobce. Znáte to. Připojíte [pokračovat ve čtení… ]