Shortcodes în wordpress

WordPress permite, printre altele, folosirea codurilor scurte (shortcodes). Ce sunt acestea? Un [text cuprins între paranteze pătrate] ce este parsat de server în diferite feluri. Și îți voi arăta două feluri în care am folosit shortcodes pe blogurile mele: pentru Amazon S3 și pentru tag-ul acronym.

Amazon S3

Fiind proaspăt mutat pe Amazon S3 și fiind găzduit pe un cont de găzduire shared, nu prea pot modifica CNAMES pentru a avea un subdomeniu. Prin urmare, link-ul spre S3 arată ceva de genul:

http://content.iamntz.com.s3.amazonaws.com/blog.iamntz.com/imagine.jpg

Desigur, aș putea ține minte (într-un final) ditamai cârnatul. Dar.. De ce aș face-o? În plus, ce s-ar întâmpla în momentul când mă zgârcesc și nu mai vreau să plătesc ~50 cenți/lună către Amazon? S-ar cam duce dracu toate imaginile. Prin urmare, am făcut un shortcode ce îmi permite să adaug o imagine într-un mod foarte simplu:

[ s3 thumbnail.jpg imaginemare.jpg ]

(fără spații!)

  1. Shortcode: s3
  2. Primul parametru thumbnail.jpg. Evident, link-ul spre imagine. Este obligatoriu.
  3. Al doilea parametru imaginemare.jpg. În cazul în care poza e prea mare, pui un thumbnail micuț (primul parametru) și link spre imaginea mare. Foarte util pentru galerii de genul lightblox
function amazonS3($amazon) {
	extract(shortcode_atts($amazon, $content = null));
	
	$ret = '<img src="http://content.iamntz.com.s3.amazonaws.com/blog.iamntz.com/images/'.$amazon[0].'" alt="" />';
	
	if(isset($amazon[1])){
		$ret = '<a href="http://content.iamntz.com.s3.amazonaws.com/blog.iamntz.com/images/'.$amazon[1].'">' . $ret . '</a>';
	}
	return $ret;
}
add_shortcode('s3', 'amazonS3');

Acronym

Tag-ul acronym îti permite să bagi mici explicații pentru anumite… acronime sub formă de tooltips. Poate ai observat în articolele anterioare anumite acronime subliniate cu o linie punctată ce arată o scurtă explicație când te duci cu mouse-ul peste ele.

În fine, problema cea mai mare este DRY. Cum aș putea face astfel încât să nu scriu explicația pentru fiecare termen dacă nu cu shortcodes? Și un array, desigur :D

global $acronime;
$acronime = Array(
	'html' => 'Hyper Text Markup Language',
	'css' => 'Cascading Style Sheet'
);

function acronym($acronym)  {
	global $acronime;
	extract(shortcode_atts($acronym));
	$ret = '<acronym title="'.$acronime[strtolower(trim($acronym[0]))].'">'.$acronym[0].'</acronym>';
	return $ret;
}
add_shortcode('acro', 'acronym');

După care

[ acro HTML ] 

va fi transformat în:

<acronym title="Hyper Text Markup Language">HTML</acronym>

Cum se folosește?

Copiezi codurile de mai sus (doar cele PHP!) în functions.php. Care este în wp-content/themes/TEMA-TA/functions.php. Și gata :)

Enjoy!

5 Comentarii to “Shortcodes în wordpress”

  1. viitorul e printre nori :)

  2. Uh, nice one, chiar e folositor!

  3. Foarte util shortcode-ul din WordPress, l-am folosit la un plugin acum vreo 2 luni.

Show trackbacks
  1. […] shortcodes am scris și eu aici. O altă povestioară, tot despre shortcodes găsești și […]

  2. […] se folosesc shortcodes în WordPress? Am scris anul trecut despre asta, dar iată un articol excelent pe acastă temă aici. Posted in: Links […]

Ți-a plăcut articolul? Lasă un comentariu!

You can insert code snippets using BBcode:
[js].[/js] [html].[/html] [php].[/php] [css].[/css]
You can also use some HTML tags:
<blockquote>.</blockquote> <code>.</code> <a href="">.</a> <strong>.</strong> <em>.</em>

windows apple dropbox facebook twitter