web-dev-qa-db-fra.com

Shortcode mais sans le signe d'égalité?

Je suis conscient de créer un shortcode de cette façon:

function font_fam($atts, $content = null){ 
extract(shortcode_atts(array(
  'f' => '',  
  ), $atts ));

return '<span style="font-family:'.$f.'">'.$content.'</span>';

}
add_shortcode ('f','font_fam');

Et l'utiliser serait comme ceci:

[f f="Arial"] Text Text [/f]

Mais y a-t-il moyen de l'utiliser de la manière suivante:

[f Arial] Text Text[/f]
[f Tahoma] Text Text [/f]

(en sautant le "f =")

Merci!

2
John

Essaye ça:

function font_fam($atts, $content = null) {

    extract(shortcode_atts(array(
            'f' => isset($atts[0]) ? $atts[0] : '' ,
            ), $atts));

    return '<span style="font-family:' . $f . '">' . $content . '</span>';
}

add_shortcode ('f','font_fam');
5
Rarst

Une solution pourrait consister à préparer votre contenu en associant un filtre 'the_content' qui ajoute le bit f=.

Une autre solution consiste à modifier vos codes abrégés en quelque chose comme [Tahoma]...[/Tahoma] et à les ignorer complètement, bien que vous finissiez par enregistrer beaucoup de codes abrégés.

1
wyrfel