Hrátky s RSS kanálem

V rubrice: Tipy & Triky | Obtížnost:

Pro pohodlné čtení nových článků na internetu můžete používat RSS čtečky. S nimi se nemusíte proklikávat obsáhlým seznamem stránek, abyste se podívali, co je nového. Můžete tak pohodlně číst různé články, aniž byste nad jejich hledáním ztráceli příliš mnoho času. Dnes už mohou jejich funkci částečně nahradit sociální sítě jako Google Plus nebo Facebook, ale i tak má RSS pořád něco do sebe.

Pokud nepatříte mezi zasvěcené, přečtěte si třeba článek na Rootu. Bez něj vlastně nebudete vědět „vo co go“, takže ho hezky přelouskejte. Ušetří vám hodně času.

WordPress je s RSS čtečkami velký kamarád a přece většina uživatelů odebírá pouze hlavní kanál. Možná ani netuší, jak jednoduché je hezky si všechno nastavit. Můžete si vybrat z jaké rubriky, jakými tagy oštítkované články chcete mít. Pro wordpress a IT světem nepolíbené můžete vytvořit speciální stránku, kde jim bude vygenerováno url, podle jejich voleb.

K tomu účelu si vytvoříme vlastní šablonu stránky. Nejlépe, když založíte nový soubor libovolného názvu, překopírujete do něj obsah page.php a úplně nahoru přidáte něco ve stylu:

/*
* Template Name: RSS Kanály
*
*
*/

Tím si připravíte novou šablonu stránky. Musíme nějak nahradit běžně vypisovaný obsah možnostmi pro zvolení svého vlastního feedu. The_content tedy nahradíme:

<form action='' method='post'>
    <strong>Rubriky:</strong><br>
    <?php
    $categories = get_categories();
    foreach ($categories as $category) {
        echo '<label><input type="checkbox" name="c' . $category->term_id . '">' . $category->cat_name . '</label>';
    }
    ?>
    <div style='clear: both'></div>
    <br><strong>Štítky:</strong><br>
    <?php
    $tagy = get_tags();
    foreach ($tagy as $tag) {
        echo '<label><input type="checkbox" name="t' . $tag->slug . '">' . $tag->name . '</label>';
    }
    ?>
    <div style='clear: both'></div>
    <br><strong>Hledaná slova:</strong></br>
    <input type='text' value='' name='h'><br><br>
    <input type='hidden' value='' name='odeslat'>
    <input type='submit' value='Odeslat'>
    <br>
</form>

Nyní máme uživatelské rozhraní, pomocí kterého si uživatel vybere, co chce odebírat. Samotné provedení má pak na starosti tento script:

if (isset($_POST['odeslat'])) {
    $url = bloginfo('wpurl') . "/?feed=rss2";
    $cat = "&cat=";
    $tag = "&tag=";
    foreach ($_POST as $key => $item) {
        $typ = substr($key, -(strlen($key)), 1);
        if ($typ == 't')
            $tagy .= substr($key, 1) . ",";
        elseif ($typ == 'c')
            $caty .= substr($key, 1) . ",";
        elseif ($typ == 'h')
            $s.= "&s=" . str_replace(
                            array('Á', 'Ä', 'É', 'Ë', 'Ě', 'Í', 'Ý', 'Ó', 'Ö', 'Ú', 'Ů', 'Ü', 'Ž', 'Š', 'Č', 'Ř', 'Ď', 'Ť', 'Ň', 'Ľ', 'á', 'ä', 'é', 'ë', 'ě', 'í', 'ý', 'ó', 'ö', 'ú', 'ů', 'ü', 'ž', 'š', 'č', 'ř', 'ď', 'ť', 'ň', 'ľ'), array('a', 'a', 'e', 'e', 'e', 'i', 'y', 'o', 'o', 'u', 'u', 'u', 'z', 's', 'c', 'r', 'd', 't', 'n', 'l', 'a', 'a', 'e', 'e', 'e', 'i', 'y', 'o', 'o', 'u', 'u', 'u', 'z', 's', 'c', 'r', 'd', 't', 'n', 'l'), $item);;
    }
    if ($tagy != "") {
        $tag .= substr($tagy, 0, -1);
        $url.=$tag;
    }
    if ($caty != "") {
        $cat .= substr($caty, 0, -1);
        $url.=$cat;
    }
    if ($s != "&s=") {
        $url .= $s;
    }
    header("location: $url");
}

Kód vložíme na začátek stránky. V administraci page založte novou stránku, vymyslete nějaký hezký název a vyberte šablonu RSS kanály.

V rubrice: Tipy & Triky | Obtížnost: