Sitemap in Wordpress

Tuesday, 05 October, Year 2 d.Tr. | Author: Mircea Popescu

Discutind cu unul si cu altul am inteles ca e mare bataie de cap sa-ti faci un sitemap care sa functioneze bine. Exista plugin-uri, dar ele consuma [nejustificat de multe] resurse, dau diverse batai de cap la upgrade (voi chiar faceti upgrade ?! de ce ?!) si in general cauzeaza.

Eu folosesc bineinteles o solutie simpla, dezvoltata in-house. Cam de-un an de zile asa, si nu pot zice ca imi pare rau. Daca doriti s-o folositi si dumneavoastra, tot ce aveti de facut e sa copiati codul de mai jos intr-un fisier php, pe care sa-l puneti intr-un director si sa-l introduceti ca sitemap in google.com/tools/webmasters

$db_name = '{numele bazei de date}';
$db_user = '{numele agentului}';
$db_pass = '{parola}';
$table_prefix = '{prefixul tabelelor, daca aveti}';

$nconnection = mysql_connect("localhost:3306", $db_user, $db_pass );
mysql_select_db($db_name, $nconnection);

$query = 'SELECT post_name, FROM '.$table_prefix.'posts WHERE post_type ="post" ORDER BY post_date DESC';
$record=mysql_query($query);

while ($row = mysql_fetch_array($record, MYSQL_NUM)) {
$year = substr($row[1],0,4);
$name = 'http://trilema.com/'.$year.'/'.$row[0].'/';
echo $name,"\r";
}

Evident, inlocuiti parolele, numele etc. Asta este tot.

Nu, nu va doriti versiunea XML, pentru ca este pe de-o parte prea mare (ceea ce va consuma banda, pe de-o parte, si va apropie de limitele trasate de Google, pe de cealalta) si pentru ca nu face defapt nimic util sau in plus fata de asta simpla.

Daca totusi insistati sa folositi XML, inlocuiti partea de while de mai sus cu

while ( $row = mysql_fetch_array($record, MYSQL_NUM)) {
$year = substr($row[1],0,4);
$name = 'http://trilema.com/'.$year.'/'.$row[0].'/';
echo " <url>\r";
echo " <loc>",$name,"</loc>\r";
echo " <lastmod>",$row[1],"</lastmod>\r";
echo " <changefreq>yearly</changefreq>\r";
echo " <priority>0.5000</priority>\r";
echo " </url>\r";
}

Puteti bineinteles sa va jucati cu prioritatile, eventual punind o ordine crescatoare sau descrescatoare cu un counter, sau folosind o functie aleatorie daca creditati teoria ca asta ajuta la indexare (e un mit, nu ajuta) si asa mai departe. Va pierdeti vremea cu XML-ul, da' vorba ceea, pe bloaga lui fiecare-si pierde timpu' cum doreste.

Evident, daca folositi alta schema decit cea cu nume_blog/an/nume_articol (si foarte rau faceti) aveti a mai prelucra putin assignment-ul $name=

Principalul avantaj al acestei solutii este ca odata instalata nu mai trebuie sa va ginditi la ea niciodata, eu n-am atins-o de-atunci, azi am deschis fisierul pentru prima oara, ca sa-l copiez aici.

PS. Atentie, ca intotdeauna, la ghilimele cind copiati, wordpress face figuri.

Category: Meta psihoza
Comments feed : RSS 2.0. Leave your own comment below, or send a trackback.

3 Responses

  1. Sau puteti sa faceti un simplu fisier text, ca tot acolo ajungeti.
    (ma refer doar la SEO si goagle)

  2. Mircea Popescu`s avatar
    2
    Mircea Popescu 
    Thursday, 8 September 2011

    Daca-l faci fisier static va trebui sa tot mesteresti la el. Daca publici de citeva ori pe luna nu-i asa mare chestie, dar daca publici de mai multe ori pe zi va deveni obositor.

  1. [...] aduse diverselor nulitati cu pretentii la expertiza de abuzului de pluginuri, daca n-ati remarcat alternativele mai simple si mai eficiente oferite pe-aici cu generozitate si asa mai departe, ei… asta [...]

Add your cents! »
    If this is your first comment, it will wait to be approved. This usually takes a few hours. Subsequent comments are not delayed.