WordPress
Shortcode avec attribut
Recherche…
Syntaxe
- add_shortcode ('your_short_code', 'your_function_name');
Paramètres
Paramètres | Discription et utilisation |
---|---|
$ tag | (chaîne) (obligatoire) Balise de code court à rechercher dans le contenu de la publication Valeur par défaut: Aucune |
$ func | (appelable) (obligatoire) Crochet pour s'exécuter lorsque le shortcode est trouvé Par défaut: Aucun |
Remarques
IMPORTANT - N'utilisez pas camelCase ou UPPER-CASE pour vos attributs
Vous pouvez générer un shortcode avec l'attribut Here
Exemples de shortcodes
Les codes courts WordPress ont été introduits dans 2.5
Voici un exemple de shortcode
[button]
pour utiliser le shortcode directement dans le thème, vous devez utiliser do_shortcode()
<?php echo do_shortcode('[button]'); ?>
Pour personnaliser le bouton, nous pourrions simplement ajouter quelque chose comme:
[button type="twitter"]
Ou pour le rendre encore meilleur, nous pourrions utiliser un shortcode englobant:
[button type="twitter"]Follow me on Twitter![/button]
Créer un shortcode à fermeture automatique
Le shortcode le plus simple est celui à fermeture automatique. Nous allons créer un simple lien vers notre compte Twitter, puis l'ajouter à un article de blog. Tout le code va dans functions.php
, qui se trouve dans /wp-content/themes/your-theme/
. Si vous n'en avez pas, créez-le et insérez-le.
<?php
function button_shortcode() {
return '<a href="http://twitter.com/rupomkhondaker" class="twitter-button">Follow me on Twitter!</a>"';
}
add_shortcode('button', 'button_shortcode');
?>
Utilisation: [button]
Créer un shortcode à fermeture automatique avec des paramètres
Créer un shortcode à fermeture automatique avec des paramètres
<?php
function button_shortcode( $type ) {
extract( shortcode_atts(
array(
'type' => 'value'
), $type ) );
// check what type user entered
switch ($type) {
case 'twitter':
return '<a href="http://twitter.com/rupomkhondaker" class="twitter-button">Follw me on Twitter!</a>';
break;
case 'rss':
return '<a href="http://example.com/rss" class="rss-button">Subscribe to the feed!</a>'
break;
}
}
add_shortcode( 'button', 'button_shortcode' );
?>
Vous pouvez maintenant choisir quel bouton afficher en définissant le type dans votre shortcode.
[button type="twitter"]
[button type="rss"]
Créer un shortcode englobant
code court
Le shortcode englobant vous permet d'intégrer du contenu dans votre shortcode, tout comme le BBCode si vous l'avez déjà utilisé.
<?php
function button_shortcode( $attr, $content = null ) {
return '<a href="http://twitter.com/filipstefansson" class="twitter-button">' . $content . '</a>';
}
add_shortcode('button', 'button_shortcode');
?>
Pour utiliser ce shortcode, vous devez incorporer le texte que vous souhaitez utiliser comme suit:
[button]Follow me on Twitter![/button]
Pour rendre ce bouton encore meilleur, nous pourrions ajouter des paramètres comme nous l'avons fait dans l'exemple précédent.
<?php
function button_shortcode( $atts, $content = null ) {
extract( shortcode_atts( array(
'account' => 'account',
'style' => 'style'
), $atts ) );
return '<a href="http://twitter.com/' . esc_attr($account) . '" class="twitter-button ' . esc_attr($style) . '">' . $content . '</a>';
}
add_shortcode('button', 'button_shortcode');
?>
Usage:
[button account="rupomkhondaker" style="simple"]Follow me on Twitter![/button]
Shortcodes dans les widgets
Par défaut, WordPress ne prend pas en charge les codes abrégés dans les widgets de la barre latérale. Il ne fait que développer les codes courts dans le contenu d'un type de publication, de page ou personnalisé. Pour ajouter un support de shortcode aux widgets de la barre latérale, vous pouvez installer un plug-in ou utiliser le code ci-dessous:
add_filter( 'widget_text', 'shortcode_unautop' );
add_filter( 'widget_text', 'do_shortcode' );
Il est important que ces lignes soient ajoutées dans cet ordre. La première ligne empêche WordPress de transformer les sauts de ligne en balises de paragraphe, car cela empêche les shortcodes de fonctionner. La deuxième ligne est celle qui fait fonctionner les shortcodes.