Shortcode per i permalink compatibili con i motori di ricerca
Scritto da: Raffaele in Wordpress, tags: Permalink, SEO, WordpressLa funzione proposta da Chris permette di inserire dei link in questo formato:
<a href="[permalink id=49]">Contact</a>
o direttamente in questo:
[permalink id=49 text='Contact']
per generare degli output così:
<a href="/contact/">Contact</a>
(nel caso specifico l’id della pagina 49 corrisponderebbe ad una pagina con permalink di nome “contact” )
Qquesta funzione risulterebbe particolarmente comoda nel momento in cui si dovesse effettuare effettuare una migrazione del sito web o si decidesse di cambiare il nome di un permalink.
Poiché sono molto attento all’usabilità e ci tengo al fatto che il mio sito possa, nel suo piccolo, influenzare i motori di ricerca, ho deciso di apportare delle modifiche al codice proposto da Chris per inserire anche l’attributo
“title” nel link.
Partendo quindi da uno short code che comprenda l’attributo title:
[permalink id=49 text='Contact' title="Contattami"]
e produca questo ouput:
<a href="/contact/" title="contattami">Contact</a>
Vediamo come ho agito:
Questo è il codice proposto da Chris:
function permalink_thingy($atts) {
extract(shortcode_atts(array(
'id' => 1,
'text' => "" // default value if none supplied
), $atts));
if ($text) {
$url = get_permalink($id);
return "<a href='$url'>$text</a>";
} else {
return get_permalink($id);
}
}
add_shortcode('permalink', 'permalink_thingy');
e così è come lo ho trasformato io:
function permalink_raffaele($atts) {
extract(shortcode_atts(array(
'id' => 1,
'text' => "",
'title' => "",
), $atts));
//se c'è il testo ma non il title
if (($text)&& (!$title)) {
$url = get_permalink($id);
return "$text";
}
//se c'è il title ma non il testo
if ((!$text) && ($title)) {
$url = get_permalink($id);
return "$text";
}
//se ci sono sia testo che title
if (($text) && ($title)) {
$url = get_permalink($id);
return "$text";
}
//se mancano entrambi ovvero se si è usata questa sintassi: Using without providing text
if ((!$text) && (!$title)) {
return get_permalink($id);
}
}
add_shortcode('permalink', 'permalink_raffaele');
adesso inserendo uno short link come segue:
[permalink id=219 text='Corri Alessandro' title="Corri Alessandro!"]
ottengo il seguente risultato
Corri Alessandro
<a title="Corri Alessandro!" href="http://www.raffaelepersichetti.com/corri-alessandro/">Corri Alessandro</a>

Articoli (RSS)