Excluderi din WordPress
Ati observat ca prima pagina a Trilemei alege aleator un articol din arhiva. N-am sa discut meritele acestei abordari, nu mi se pare ca mai este cazul, dar notez totusi in trecere ca procedeul serveste mult mai bine o colectie de articole scrise in ideea vesniciei decat o adunatura de insailari despre "evenimente". Nimic mai trist decat nimicul cotidian al anului trecut.
Am sa discut insa modul in care aceasta alegere se executa din punct de vedere tehnic, ca ma tot intreaba lumea. Sigur, in principiu pare (si este) simplu, un "orderby = rand" pe undeva. Dar daca avem posturi cu muieri in pielea goala ? Pai, ar fi poate bine sa le excludem, dupa rationamentul ca o persoana care ajunge pentru prima oara la noi pe blog si-ar putea forma o idee gresita despre ce se intampla pe-aici. Dar daca avem categorii care la fel, din ceva motiv nu-s cele mai indicate unui prim contact ? Pai ar fi bine sa le excludem si pe ele.
Sa le excludem, deci, dar cum le gasim ? Pai, posturile le gasim usor de tot, mergem frumos in phpmyadmin, selectam tabela "posts" din baza de date care ne pastreaza in siguranta blogul, dam click pe unde scrie SQL si scriem acolo
SELECT ID
FROM `posts`
WHERE `post_title`
REGEXP 'NSFW'
AND `post_type` = 'post'
LIMIT 0 , 30
Chestia functioneaza pentru ca am fost copii destepti si-am introdus termenul NSFW in titlurile postarilor mai deocheate, pe de-o parte ca sa stie cititorii, si sa le evite in prezenta minorilor, sefilor, fetelor de-abia cunoscute scl, si pe de cealalta parte pentru ca nu se stie cand ne-o folosi la ceva.
Ei, si asa aflam ca lista postarilor NSFW pe Trilema este 229, 255, 287, 487, 623, 663, 733, 881, 1701, 2268, 4712, 4854, 5363, 5560, 6393, 7494, 8951. Bun de stiut. 17 bucati, la 1319 articole publicate, cam subtire daca stau si ma gandesc mai bine. In fine.
Sa zicem ca dorim sa excludem si categoria "Proza Arhiscurta", ca nu-i de nasul incepatorilor. Cum facem ? Pai, mergem intr-o vizita scurta, de lucru, pana la Posts > Categories, in interfata de administrare a blogului (aia de unde publicam articole, adica), si dam sa editam categoria, moment in care constatam la URL ca ea se numeste ID = 25. Puteam afla si-n alte moduri, inclusiv din phpmyadmin, da' am zis sa sie varietate.
Bun, deci stim ca vrem sa interzicem posturile alea si categoria 25. Cum facem ? Pai facem asa (in index.php) :
if ( strpos ( $_SERVER [ 'HTTP_USER_AGENT ' ] , "Googlebot" ) == 0)
query_posts ( array ( 'post__not_in' => array ( 229, 255, 287, 487, 623, 663, 733, 881, 1701, 2268, 4712, 4854, 5363, 5560, 6393, 7494, 8951), array ( 'category__not_in' => array( 25 ) ) , 'orderby' => rand ) );
Ce face chestia asta ? Dispune ca pentru toti utilizatorii care nu se identifica drept Googlebot, wordpress sa caute acele posturi care nu-s 229, 255, etc, si nici in categoria 25, si sa le ordoneze aleator. Dupa care sa-l aleaga pe primul.
Principala problema cu aceasta abordare este ca strica if the_date(), referinta wordpress pentru data, da' nu-i problema, ca o reparam usor de tot : in sectiunea din index.php unde se pune conditia if (have_posts()) : adaugam un $post = $posts[0]; ceea ce forteaza resincronizarea.
Si iata cum, intr-un mod simplu, iara daca nu simplu atunci macar eficient, si daca nici eficient atunci de-a dreptul functional putem implementa smecheria ca postari alese la intamplare, dar nu chiar la intamplare.
Succes!
Wednesday, 28 July 2010
lux. asta trebuia sa fie la categoria "consultanta SEO wordpress". sau "3 ani de experienta".
Wednesday, 28 July 2010
Aia cu 3 ani de experienta e lectii cu o componenta teoretica mai marcata, genu' de chestii care necesita putintica ieseala din propriul ego de om prost pentru a fi copciolite. Asta-i simpla chestiune tehnica, n-are treaba acolo.
Wednesday, 28 July 2010
Mircea, asa de frumos si de clar explici ca , daca aveam cu doas de ani mai putin as fi fost cu placere eleva ta...poate asa as fi inteles dar acuma, crede-ma, nimic nu am priceput, ca nu ma pricep decat la insailat cuvinte, dar nici acolo , nu cine stie cat...
Thursday, 29 July 2010
Pai e un pic mai pentru avansati bucatica asta, sincer sa fiu.