Modificări/intervenţii utile în WordPress


De regulă li se spune WordPress Hacks. Nu ştiu care ar fi cea mai bună traducere în română, dar cert e că pe unii termenul hacks ar putea să îi sperie. Să vorbim atunci de unele secvenţe de cod care permit atingerea unor obiective în WordPress. Şi pentru ca să nu lungesc introducerea trec direct la o primă problemă. Dacă folosiţi permalinks, legături permanente, atunci ştiţi că pentru categorii şi taguri WP foloseşte implicit cuvinte în limba engleză dar din fericire se pot configura după bunul plac. Un blog cu articole poate folosi teme în loc de categories, iar un blog culinar poate să aibă ingrediente în loc de tags. Dar… ce ne facem cu autorii? Implicit WP crează o pagină pentru fiecare autor. Articolele mele sunt de exemplu la http://www.cnet.ro/author/radu.capan/. Dar dacă avem un blog hai să zicem tot culinar, nu prea merge author ci ar merge mai bine să zicem bucătar. Doar că WP nu îţi oferă posibilitatea din back-end să faci această schimbare (nici WP 2.7 beta 3). Un scurt cod rezolvă însă problema:

function change_author_permalinks() {
    global $wp_rewrite;
    $wp_rewrite->author_base = 'bucatar';
    $wp_rewrite->flush_rules();
}

add_action('init','change_author_permalinks');

Acum o altă problemă pe care am avut-o. De fapt dorinţă. Probabil puteam găsi un plugin dar am dorit să fac ceva cu mâna mea pentru a avea control 100%. Nu am stat să gândesc cea mai bună interogare MySQL, dar aşa ca exemplu puteţi folosi codul de mai jos. Deci: la un blog sunt mai mulţi autori şi doresc să afişez o listă a lor, cu nişte detalii despre ei, cu o imagine şi cu o descriere. Cum pot face să nu mă complic prea mult? Păi iau descrierea din profil şi pentru imagine folosesc Gravatarul. Mi s-a părut cel mai simplu. Mai jos vedeţi o funcţie ce poate fi fructificată de exemplu – cel mai bine – cu un shortcode. Am luat lista membrilor, mai puţin administratorul, şi apoi într-o listă am afişat numele lor, situl asociat, descrierea, gravatarul, am numărat câte articole au scrise şi am pus link spre pagina cu articolele lor. Evident un astfel de cod se poate uşor adapta într-un plugin sau modifica pentru a afişa alte informaţii ori a „subţia” lista doar pentru cei care au articole, dacă blogul are deschisă înscrierea pentru oricine. Modificaţi după bunul plac!

function membri(){
	global $wpdb, $table_prefix;
	$text .= "<p>Membrii acestui blog:</p><ul>";
	$results = $wpdb->get_results("select * from wp_users where user_login!='admin' order by display_name");
	foreach ($results as $res) {
		$text .= "<li><strong>".$res->display_name."</strong>".($res->user_url!="http://"?" (<a href=".$res->user_url." target=_blank>sit</a>)":"")."<br>";
		$desc = $wpdb->get_var("select meta_value from wp_usermeta where user_id=".$res->ID." and meta_key='description'");
		$text .= "<img src=http://www.gravatar.com/avatar.php?gravatar_id=".md5($res->user_email)."&default=".urlencode($default)."&size=60 align=right>".$desc."<br>";
		$nrart = $wpdb->get_var("select count(ID) as cate from wp_posts where post_author=".$res->ID." and post_status='publish'");
		$text .= "Articole publicate: ".$nrart." (sunt grupate <a href=http://www.blogul-cu-pricina.ro/autor/".$res->user_login."/>aici</a>)<br><br>";
	}
	$text .= "</ul>";
	return $text;
}

În practică codul de mai sus va genera ceva ca aici, sau ca în captura de mai jos pentru cei care nu vor să părăsească pagina.

Au fost două exemple de cod folosite la un blog recent. Cei care stăpânesc PHP şi WP pot face tot felul de minunăţii. Dacă credeţi că vă ajută codurile cu care alţii au rezolvat diverse probleme atunci vă recomand un articol de ieri: Most Wanted WordPress Hacks: 11 New Requests (2). Primul articol a fost Most Desired WordPress Hacks: 11 Common Requests and Fixes. Poate l-am mai menţionat, dar merge repetiţia: 40+ Most Wanted WordPress Tricks and Hacks. În fine, vă mai poate interesa şi WPRecipes şi WPHacks (fostul HackWordPress).


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *