Un événement rare - je veux faire quelque chose dans WordPress mais je n'ai aucune idée de la façon de procéder et la recherche ne s'avère littéralement rien.
Lorsque vous insérez une image dans une publication, vous obtenez des options d'alignement: «aucune», «gauche», «droite», «centre». Il en résulte que l'image est insérée avec une classe CSS liée à l'alignement, comme 'alignleft', 'alignright' ou 'aligncenter'.
Génial.
Et si mon thème était un peu plus complexe et que je voulais ajouter quelques options ici qui, tout comme les options principales, ajouteraient simplement une nouvelle classe CSS aux images insérées? Par exemple - une option de «marge droite» que je pourrais styliser avec du CSS sophistiqué pour obtenir des mises en page plus complexes?
Des conseils sur où je pourrais commencer?
Réponses:
Je suis d'accord avec David-Binda - excellente question! J'ai rencontré ce problème à plusieurs reprises et j'ai trouvé une solution qui fonctionne assez bien. Bien que j'aime l'idée d'ajouter un shortcode pour insérer l'image avec des classes comme suggéré par pavlos-bizimis, je ne pense pas que cela résout le problème aussi élégamment que l'ajout d'options au popup d'édition d'image (par exemple, vous auriez probablement à envelopper l'image dans votre shortcode, sauf si vous préférez saisir manuellement un ID d'image). De plus, pour certains de mes clients, même un shortcode est trop compliqué (auquel cas vous pouvez le lier à un bouton TinyMCE bien sûr).
Quoi qu'il en soit,
sansplus tarder - voici mes cinq cents. J'utilise cette solution dans un plugin de diaporama qui me donne les options pour inclure / exclure l'image du diaporama et définir une couleur d'arrière-plan pour une superposition montrant le contenu de certains champs méta d'image. Fondamentalement, il se connecte àattachment_fields_to_edit
etattachment_fields_to_save
pour ajouter les champs de saisie et enregistrer respectivement les données du formulaire. Ces données seront disponibles en tant que méta de publication standard pour la publication de pièce jointe (c'est-à-dire l'image que vous modifiez). C'est génial car il est facile de récupérer en utilisantget_post_meta()
comme d'habitude. Et vous devez également ajouter un filtre àwp_get_attachment_image_attributes
ouimage_send_to_editor
qui vous permettra d'ajouter automatiquement la classe appropriée à chaque sortie de l'image.J'ai légèrement modifié le code pour plus de lisibilité, donc certaines parties peuvent être incomplètes / erronées.
MISE À JOUR : Je viens de copier ce code pour l'utiliser comme passe-partout dans un projet sur lequel je travaille. Comme vous pouvez probablement le constater en regardant le code, j'aime stocker mes méta-clés post dans des constantes définies. Lorsque je fais cela, je ajoute toujours la valeur avec
_
pour l'empêcher de s'afficher dans l'éditeur de métadonnées, mais cette pratique peut entraîner des problèmes avecattachment_fields_to_save
. Les clés du$form_fields
tableau ne peuvent pas commencer par_
, alors faites attention à utiliser des clés différentes pour le tableau et les métadonnées ou coupez les traits de soulignement lorsque vous traitez des champs de pièce jointe. Étant donné que ceSLIDESHOW_EXCLUDE_IMAGE_KEY
n'est même pas défini dans mon exemple, ce n'est probablement pas un gros problème lors de la copie du code, mais j'ai pensé que je le mentionnerais quand même. Il m'a fallu un certain temps pour comprendre cela (et pour la deuxième fois, à ce sujet).la source
Bonne question. Et cette question a sa solution. Peut-être que le code ci-dessous est beaucoup trop long, mais ne peut pas être plus court. Le fait est que vous pouvez supprimer le crochet wp_footer et wp_admin_footer pour la fonction wp_print_media_templates et le remplacer par votre propre fonction wp_print_media_templates avec des options personnalisées. Il suffit de placer le code ci-dessous dans vos fonctions.php remplacera la fonction d'origine et vous permet de modifier les classes après la ligne avec le commentaire HTML <! - CONFIGURER VOS CLASSES ICI -> Les classes sont insérées dans le shortcode de la galerie de cette manière:
valeur définie comme MyClass1 produit alignMyClass1.
Si vous souhaitez définir des classes sans préfixe "align", vous devrez modifier javascript en insérant un shortcode dans la zone de texte du contenu de la publication et cela peut être trop compliqué par rapport au changement de nom de vos classes en CSS. Enyoj!
la source
Vous devriez peut-être créer un shortcode pour insérer l'image avec des attributs de classe. J'ai vu cela dans beaucoup de thèmes commerciaux.
la source
Vous pouvez utiliser l'ID d'image unique pour styliser des images spécifiques individuellement.
la source