Google XML sitemap pro Wordpress

 |  Tvorba WWW  |  3 552x
Google XML sitemap pro Wordpress

Mapa webu by měla být nedílnou součástí každé webové prezentace. Její hlavní účel je pomoc ztraceným návštěvníkům najít na Vašem webu to, co hledají. Existuje také přesně daný XML formát pro mapy webů, který má svůj význam pro Google. Vygenerovat jednoduchou mapu webu není nic složitého, ovšem my blogeři to máme trochu složitější. Redakční systémy tuto funkci většinou nemají, a proto se musíme spoléhat na jiné, kteří už tento nedostatek vyřešili za nás. Sám jsem hledal nějaký plugin do Wordpressu, který by za mě vygeneroval mapu webu ve formátu XML. Struktura takového dokumentu je popsána na stránkách www.sitemaps.org.

Plugin jsem našel velice rychle, ovšem jeho implementace byla poněkud složitější - zkopírovaní souborů, jejich aktivace v administraci, a následná nefunkčnost celého skriptu :-) Nahlédl jsem tedy do zdrojového kódu a zděsil se - 40k skript, jehož výstup měl být něco okolo 1k. Takže jsem stisk tu krásnou klávesu s nápisem "Delete" a otevřel PSPad. Začal jsem studovat strukturu hlavních WP funkcí, které generovaly linky pro články, kategorie a archívy. Ani tam jsem ale moc nepochodil... Následovala chvíle přemýšlení, než mě napadla spásná myšlenka. Přihlásil jsem se tedy do PHPMyAdmina a blíže si prohlédl strukturu tabulek. Během půl hodiny (mezitím jsem si stihl ještě vypít kafe :) ) byl na světě jedno kilobytový skript, který uměl vypsat linky všech článků, feeds a kategorií. Takže ještě archívy... U archívů jsem ale narazil - v databázi prostě nikde žádná struktura, která by mi alespoň trochu napověděla, jak vypsat kategorie... Vrátil jsem se tedy zpět k funkcím WP.

Nakonec jsem 3 z nich zkopíroval do svého skriptu a redeklaroval. Tohle byla asi nejtěžší část, ale po jejím zvládnutí už se můžu pyšnit vlastní XML sitemap, a 5k skriptem, který ji generuje - což je o jednu nulu méně, než plugin, který měl to samé udělat za mě...

Mapa webu se skládá ze 2 souborů. Prvním je skript enter.php, díky kterému Vám budou fungovat základní WP funkce. Je to akorát zkopírovaný soubor wp-header.php, bez řádku pro načtení šablony. Tento skript používám právě k tomu, když potřebuji využít některé Wordpress funkce v externím skriptu, který jsem nevytvořil v administraci. Druhým souborem je pak samotná mapa webu. V něm stačí upravit pár řádků, a měla by fungovat i na jakémkoli jiném Wordpress weblogu. Co je potřeba upravit jako první, jsou vzájemné cesty mezi soubory, ke kterým přistupují funkce include a require. Já mám oba soubory v rootu.

$cat_priority = "0.8";
$cat_changefreq = "weekly";

$feed_priority = "0.6";
$feed_changefreq = "daily";

$post_priority = "0.9";
$post_changefreq = "monthly";

$archive_priority = "0.7";
$archive_changefreq = "monthly";

Dále si v souboru najděte následující řádky, a změňte si je podle svého - priorita a předpokládaný časová interval změny stránky. Jelikož se všude snažím používat původní WP funkce, mělo by vše fungovat hned od začátku. Pokud řádky nezměníte, budete mít akorát stejné priority jako já ;-)

Možný problém ale budou právě ty archívy. Struktura adres mých archívů vypadá následovně - například: http://mike.webzdarma.cz/2007/01/. Klič ke změně najdete hned v první funkci.

function get_month_link_for_sitemap($year, $month) {
    global $wp_rewrite;
    $archive_priority  = "0.7" ;
    $archive_changefreq  = "monthly" ;
   
    echo "".get_settings('home')."/".$year."/".$month."/".$archive_changefreq.$archive_priority;
 }

Pokud zápis zůstane původní, tzn. tak, jak ho mám já, funkčnost to nijak neovlivní. Pouze tam bude pár zbytečných odkazů navíc.

Zde jsou kódy obou souborů:
enter.php | sitemap.php

A konečně, výsledek: mapa webu (nelekněte se, soubor je ostylován pomocí kaskádových stylů).

Facebook Twitter Google+

Komentáře k článku "Google XML sitemap pro Wordpress"

Gravatar
ch!p 17. 6 2007, 22:32
1/4 Neděle 17. Června 2007, 22:32  |  Opera, Windows XP

ta mapa webu ti tu nějak nefunguje - hátí to 404ku

Gravatar
Mike 18. 6 2007, 08:53
2/4 Pondělí 18. Června 2007, 08:53  |  Opera, Windows XP

díky, opraveno. šlo jen o odkaz na výsledek pro tento blog. (ten samý link v patičce funkční je) - linky na zdrojové kód ale fungují. (a už jsem opravil i kódování)

Gravatar
medoz 16. 11 2007, 20:58
3/4 Pátek 16. Listopadu 2007, 20:58  |  MSIE, Windows XP

Miku žádám o radu ,jsem začátečník ,mám hotový html soubor mých stránek jen nevím kam to vložit.Sice jsem vytvořil odkaz na sitemap ale nevím jak dál aby to fungovalo.Můžeš poradit na můj mail? Díky za případnou odpověd.

Gravatar
Mike 17. 11 2007, 00:55
4/4 Sobota 17. Listopadu 2007, 00:55  |  Opera, Windows XP

[3] medoz: ahoj, pokud se jedná o aplikování mapy webu, řešení je jednoduché : mapa webu ve formátu xml má svůj význam pro google, tudíž je nutné zaregistrovat si účet na http://www.google.com/analytics/ , přidat svou stránku a vložit odkaz na 'sitemap'.

doporučuji také přidat mapu webu jako obyčejný html výstup, na něž bude odkazovat každá stránka z patičky : podobně, jako tomu mám zde já. nejen kvůli seznamu, jehož robota taková mapa webu popožene k projetí všech odkazů z dané domény, ale také kvůli uživatelům, pro snadnější orientaci na větších serverech.

v případě nejasností napíšu na e-mail

Tento článek není možné komentovat.

Pro zaslání Vašeho vzkazu použijte Návštěvní knihu.

Parak simati, Muballit mitte, Nergal allatu mellamu mesaru, La tapallah Annuaki, Kettu Puluthu qillatua