2 Čvc

XML feed do WordPressu

V XML feedech najdete zdroje prodejního a marketingového obsahu, který můžete propagovat na svém webu. Co potřebujete k napojení feedu a jak na tom vyděláte?

Ve wordpressu narazíte na pojem XML feed na každém rohu. V minulém článku jsem popsala, jak vyprodukovat RSS feed pro Seznam, dnes nahlédneme na možnosti jak jej naopak zpracovat. RSS a XML jsou vlastně formátově stejné, jen se používají pro jiné účely.

Pluginy pro import XML

Doplňků pro import souboru je více, sama však používám jeden – WP All Import, který považuju za intuitivní a přehledný. Pro poptávku od klienta jsem navrhla jednoduchý import dat postavený na free verzi doplňku.
Free verze je značně omezená a doporučuji ji použít pouze za účelem testování nebo pro jednorázové importy.
Nenajdete v ní totiž automatické stahování aktuálního XML importu od poskytovatele feedu, ani podporu importu fotografií či importu dat do vlastních druhů obsahu (Woocommerce). Tyto možnosti obsahuje pouze placená verze doplňku.

Modelový příklad importu XML feedu

Klientův web obsahuje články zaměřené na cestování. Klient je zaregistrovaný do affiliate programu, ve kterém odebírá i XML feed se zájezdy cestovní kanceláře. Zájezdy zobrazujeme u tématických článků formou obrázku, titulku a odkazu. Rubrika se zájezdy potom nabízí prokliknutí do detailu zájezdu s dalšími informacemi a tlačítkem na zakoupení zájezdu.

Technické řešení importu XML feedu s ohledem na cenu.

Jednotlivé zájezdy se načítají jako příspěvky do kategorie „Zájezdy“. Z XML feedu přebíráme titulek (do titulku), datum zájezdu (formátované a přidané do titulku), hlavní obrázek (vložený do obsahu článku), odkaz (vložený jako Stručný výpis příspěvku) a volitelné datové pole – například Cena, které vkládáme do obsahu. Kategorie je pevně nastavená jako „Zájezdy“ a lokalitu zájezdu načítáme do štítku (tu používáme ke třídění pro účel shortcode).

Políčka níže v pořadí z adminu Titulek/Obsah/Stručný výpis příspěvku (Excerpt). Texty ve složených závorkách jsou jména polí, která budete mít v XML jiná.

{hotel[1]} - [date( "d.m. Y", strtotime( {term[1]/from[1]}) ) ]  - [date( "d.m. Y", strtotime( {term[1]/to[1]}) )]
<img src="{image[1]}" />

Termín: [date( "d.m. Y", strtotime( {term[1]/from[1]}) ) ]  - [date( "d.m. Y", strtotime( {term[1]/to[1]}) )]
Lokalita: {destination[1]/locality[1]}
Stravování: {food[1]}
Doprava: {transportation[1]} , odlet z letiště {airports[1]/airport[1]}
Cena: [number_format({totalprice[1]}, 0, ",", " ")] Kč
Hodnocení hotelu: {hotelinfo[1]/stars[1]}
{url[1]}

Pomocí vlastního shortcode potom zobrazujeme jednotlivé zájezdy kdekoliv na webu chceme.

[list_post tag="kokorin"]

function list_post($atts){
    $arr = shortcode_atts(
        array(
            'tag' => 'slug',
        ), $atts );

    $args = array('tag' => $arr['tag'],'cat' => 'zajezdy');
    $out = '';
    $posts = get_posts($args);
    if ($posts){
        foreach ($posts as $post) {
            $out .= '<a class="shortcode-item" href="'. $post->post_excerpt. '"><h3 class="shortcode-heading">' . $post->post_title . '</h3><div class="shortcode-thumbnail">' .$post->post_content . '</div></a>';
        }
    }
    else {
        $out .= 'No posts found!';
    }
    return $out;

}

add_shortcode('list_post', 'list_post');

V rámci jednoduchého CSS triku pak na webu uvidíte obrázky z contentu bez textu. Který naopak ale na stránce detailu zobrazíte.

.shortcode-thumbnail{
font-size:0px;
}

Závěrem chci zmínit důležité nastavení importu „Record matching“, tedy to, co se stane, pokud při dalším importu narazí systém na stejný článek. Ve free verzi se při importu automaticky nesmažou neexistující položky, doporučuji je ručně promazat před dalším importem. Update příspěvků naopak plugin umí. Věnujte však pozornost i políčku taxonomies, kde mám nastaveno „only new add“.

Líbí se Vám tento článek a pomohl Vám?
Pozvěte mě na dortík virtuálně přes paypal.me/MartinaZap .

Potřebujete pomoci s Vaším problémem?
Použijte kontaktní formulář.

bez komentáře

Napsat komentář

Your email address will not be published. Všechny položky je nutné vyplnit.