Shortcodes în wordpress
WordPress permite, printre altele, folosirea codurilor scurte (shortcodes). Ce sunt acestea? Un 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!)
- Shortcode:
s3 - Primul parametru
thumbnail.jpg. Evident, link-ul spre imagine. Este obligatoriu. - 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
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!
- Posted in:
- Tips & Tricks,
- WordPress

viitorul e printre nori
Uh, nice one, chiar e folositor!
Foarte util shortcode-ul din WordPress, l-am folosit la un plugin acum vreo 2 luni.