Maison > Tutoriel CMS > WordPresse > Comment créer des shortcodes imbriqués dans WordPress

Comment créer des shortcodes imbriqués dans WordPress

Lisa Kudrow
Libérer: 2025-02-21 11:08:14
original
848 Les gens l'ont consulté

How to Create Nested Shortcodes in WordPress

Comment créer des shortcodes imbriqués dans WordPress

Lorsqu'un éditeur ajoute un WordPress [shortcode] À un article ou une page, il est remplacé par la sortie retournée d'une fonction de gestionnaire dans un plug-in ou le fichier Functions.PHP du thème. Créons un exemple simple:
// create a styled button
function ContactButton($params, $content = null) {

	extract(shortcode_atts(array(
		'url' => '/contact-us',
		'type' => 'style1'
	), $params));

	return
		'<a href="' . $url . '" >' . ucwords($content) . '</a>';

}
add_shortcode('button','ContactButton');
Copier après la connexion
Lorsque le code suivant est rencontré en page ou en publication:
[button]contact us today[/button]
Copier après la connexion
Il sera traduit en:
<a href="/contact-us" >Contact Us Today</a>
Copier après la connexion
Le travail de l'éditeur est rendu beaucoup plus facile et ils n'ont pas à s'inquiéter de l'apprentissage du HTML. Regardons un autre exemple qui crée une simple boîte de callout:
// callout box
function CalloutBox($params, $content = null) {

	extract(shortcode_atts(array(
		'type' => 'style1'
	), $params));
	
	return
		'<aside >' . $content . '</aside>';

}
add_shortcode('callout','CalloutBox');
Copier après la connexion
Mais que se passe-t-il si notre éditeur veut insérer un bouton à l'intérieur de sa boîte de callout?…
[callout]For more information [button]contact us today[/button][/callout]
Copier après la connexion
Dans l'état actuel des choses, le code actuel échouera. La fonction Calloutbox est appelée d'abord mais le [bouton] intérieur ne sera pas traduit en conséquence. La fonction clé pour résoudre le problème est DO_ShortCode () - il applique le filtre de raccourci de WordPress à n'importe quel contenu. Dans ce cas, nous voulons permettre à l'éditeur d'ajouter un [bouton] dans notre [Calout] afin que nous modifions modifier l'instruction RETOUR de Calloutbox en conséquence:
return
	'<aside >' . 
	do_shortcode($content) . 
	'</aside>';
Copier après la connexion
Le code imbriqué ci-dessus fonctionnera désormais comme prévu. Cependant, l'éditeur ne serait pas autorisé à nicher un [callout] dans un [bouton]. C'est une flexibilité comme celle-ci qui fait de WordPress une joie à utiliser - la version 3.3 est maintenant disponible.

Les questions fréquemment posées sur les shortcodes imbriqués WordPress

Que sont les shortcodes imbriqués dans WordPress?

Les codes shorts imbriqués dans WordPress sont essentiellement des codes à short dans les codes short. Ils vous permettent d'utiliser un shortcode comme attribut ou dans la zone de contenu d'un autre raccourci. Cela peut être particulièrement utile lorsque vous souhaitez créer des structures ou des fonctionnalités de contenu complexes sur votre site WordPress sans avoir à écrire un code HTML ou PHP étendu.

Comment créer un shortcode imbriqué dans WordPress?

Pour créer un raccourci imbriqué dans WordPress, vous devez d'abord définir vos raccourcis parents et enfants dans le fichier functions.php de votre thème ou dans un plugin personnalisé. Le shortcode parent doit avoir un attribut qui peut accepter la sortie du raccourci enfant. Le raccourci enfant doit renvoyer sa sortie au lieu de l'imprimer directement. De cette façon, la sortie peut être transmise au shortcode parent.

Pourquoi mes shortcodes imbriqués ne fonctionnent-ils pas?

Il pourrait y avoir plusieurs raisons pour lesquelles vos shortcodes imbriqués ne fonctionnent pas. Une raison courante est que le shortcode enfant imprime directement sa sortie au lieu de le retourner. Une autre raison pourrait être que le shortcode parent n'est pas correctement configuré pour accepter la sortie du shortcode enfant. Il est également possible qu'il y ait un conflit avec un autre plugin ou thème.

Puis-je utiliser un shortcode dans un attribut de shortcode?

Oui, vous pouvez utiliser un shortcode dans un attribut de shortcode. Cependant, cela nécessite une configuration spécifique dans vos fonctions de shortcode. La fonction de shortcode parent doit utiliser la fonction do_shortcode sur l'attribut qui contiendra le shortcode imbriqué.

Comment puis-je déboguer mes shortcodes imbriqués?

Le débogage des raccourcis imbriqués peut être effectué en vérifiant la sortie de chaque shortcode séparément. Vous pouvez également utiliser divers outils de débogage disponibles pour WordPress, tels que le plugin Debug Bar, qui peut fournir des informations utiles sur les shortcodes.

Puis-je nicher le même shortcode en lui-même?

Oui, oui, oui, oui, oui, oui, oui, oui, oui, oui, oui, oui, oui, oui, oui, oui, oui, Il est possible de nicher le même shortcode en lui-même, créant un shortcode récursif. Cependant, cela devrait être fait avec prudence car cela peut potentiellement entraîner des boucles infinies si elle n'est pas correctement contrôlée.

y a-t-il des limites à l'utilisation de shortcodes imbriqués?

Alors que les shortcodes imbriqués peuvent fournir beaucoup de liens La flexibilité, ils peuvent également rendre votre code plus complexe et plus difficile à maintenir. Il est également important de noter que tous les thèmes ou plugins ne peuvent pas prendre en charge les shortcodes imbriqués.

Puis-je utiliser des shortcodes imbriqués avec n'importe quel thème WordPress?

Oui, vous pouvez utiliser des shortcodes imbriqués avec n'importe quel thème WordPress. Cependant, la fonctionnalité spécifique des shortcodes dépendra des fonctions définies dans votre thème ou vos plugins.

Comment puis-je styliser la sortie de mes shortcodes imbriqués?

La sortie de vos shortcodes imbriqués peut-être Soyez stylé à l'aide de CSS. Vous pouvez ajouter des classes personnalisées à la sortie de votre shortcode, puis utiliser ces classes dans votre CSS pour appliquer les styles souhaités.

Puis-je utiliser des codes shorts imbriqués dans mes messages et pages?

Oui, vous pouvez Utilisez les shortcodes imbriqués dans vos messages et pages. Vous pouvez également les utiliser dans des widgets, tant que votre thème ou vos plugins prennent en charge les codes de widgets.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal