J'ai besoin de créer une ou plusieurs boîtes méta de message personnalisé pour mon type de message personnalisé "Diaporama" (ce type de message est déjà créé). Chaque métabox contiendra le contenu de chaque diapositive de diapositive et l'enregistrera dans les champs personnalisés correspondants. Chaque métabox doit contenir les champs suivants:
- Titre (champ de texte)
- Image (soit un champ de texte pour l'URL img ou, idéalement, une liste déroulante montrant les vignettes des images jointes attachées au message)
- Code d'intégration (zone de texte)
- Description (wysiwyg)
- Masquer la diapositive (case à cocher à utiliser pour masquer temporairement une diapositive sans la supprimer)
- Supprimer la diapositive (bouton qui supprime le contenu des champs meta post qui ont été remplis par cette diapositive)
Je voudrais également un bouton quelque part qui me permette d '"ajouter une diapositive" donc quand il est cliqué, il ajoute une autre méta-boîte personnalisée "diapositive" qui est un double de la première mais ajoute un numéro incrémentiel à chaque champ méta personnalisé. Je n'ai actuellement que 15 métaboxes et le modèle de diaporama est configuré de telle sorte que si seulement 5 des métaboxes sont remplies, seules 5 diapositives s'affichent.
Enfin, j'aimerais pouvoir réorganiser les diapositives, que ce soit par "glisser-déposer" ou par un autre champ de texte dans lequel je peux taper le numéro de commande.
Je l'ai obtenu presque là où j'en ai besoin avec le plugin "More Fields" et l'aide du code de Rarst. Avec le plugin "More Fields" j'ai les champs suivants dans chaque metabox:
- Titre (champ de texte)
- Image (Une liste déroulante des images jointes au message)
- Code d'intégration (zone de texte)
- Description (wysiwyg)
- Masquer la diapositive (case à cocher à utiliser pour masquer temporairement une diapositive sans la supprimer)
Voici une capture d'écran de la façon dont je l'ai configuré via le plugin "More Fields":
Le problème avec cela est qu'il n'y a aucun moyen de supprimer une diapositive une fois qu'elle est créée car "More Fields" n'utilise <?php delete_post_meta($post_id, $key, $value); ?>
nulle part. L'autre problème avec le plugin est qu'il est trop peu fiable et rompt fréquemment avec les mises à jour.
J'ai pu implémenter une solution similaire avec mes propres métaboxes personnalisées qui incluent:
- Titre (champ de texte)
- Image (champ de texte pour l'URL img)
- Code d'intégration (zone de texte)
- Description (zone de texte)
- Masquer la diapositive (case à cocher à utiliser pour masquer temporairement une diapositive sans la supprimer)
Avec cette implémentation, je n'arrive pas à faire fonctionner les multiples champs TinyMCE ou la liste déroulante d'image. Le code TinyMCE semble fonctionner jusqu'à ce que j'ajouter le code qui crée des copies supplémentaires de la première METABOX à quel point je reçois ce droit d'erreur au- dessus du champ où les boutons TinyMCE doivent être: Warning: array_push() [function.array-push]: First argument should be an array...
.
De plus, en ce moment, je compte sur mes rédacteurs pour savoir mettre soit une vidéo ou une image pour chaque diapositive et ça va, mais il peut être préférable d'avoir un bouton radio qui leur permet de choisir celle qui est la diapositive (probablement par défaut à image) qui est liée à une déclaration d'affichage conditionnelle dans le modèle de diaporama.
Je gère les téléchargements d'images via la boîte intégrée "Image vedette" dans la barre latérale, bien que cela ne me dérange pas une métabox personnalisée qui dit simplement "Télécharger des images" en haut du panneau d'écriture.
En fin de compte, je recherche un diaporama similaire à celui-ci: http://www.nytimes.com/slideshow/2010/08/10/science/20100810angier-1.html . Je veux que le mien puisse également avoir une vidéo comme contenu dans la diapositive au lieu d'une image. J'ai besoin d'un panneau d'administration intuitif et facile à utiliser pour mes rédacteurs (ils ne sont pas très avertis en technologie et ne sont pas fiables en utilisant du HTML et / ou des shortcodes). Au cas où cela ne serait pas clair dans l'exemple, chaque diapositive devrait générer une nouvelle page vue.
La réorganisation de Drag'n'Drop n'est pas une priorité élevée mais ce serait cool. J'ai trouvé un plugin qui gère très bien cela: SlideDeck . Malheureusement, le plugin ne convient pas à mes besoins, mais la façon dont ils gèrent la commande des diapositives est assez simple. C'est une métabox séparée dans la barre latérale qui vous permet de faire glisser les diapositives dans l'ordre que vous souhaitez. C'est aussi comme cela que vous ajoutez des diapositives, en cliquant sur un bouton "Ajouter une diapositive" qui ajoute une autre diapositive de métabox au panneau d'écriture. Voici une capture d'écran:
Vous pouvez également voir plus de captures d'écran de celui-ci en action dans le référentiel wordpress .
Voici tout mon code:
Les fonctions de configuration de mon type de publication de diaporama et de pagination de diaporama: http://loak.pastebin.com/g63Gf186
Le code original de DeluxeBloggingTips.com (DBT) sur lequel j'ai basé mes métaboxes: http://loak.pastebin.com/u9YTQrxf
La version du code DBT que j'ai modifiée pour me donner des versions incrémentielles du même métabox: http://loak.pastebin.com/WtxGdPrN
Une version modifiée du code DBT que Chris Burbridge a créée pour autoriser plusieurs instances de TinyMCE: http://loak.pastebin.com/Mqb3pKhx Avec ce code, les TinyMCE fonctionnent.
Ma modification du code de Burbridge qui essaie d'incorporer mon incrémentation et un champ qui vous permet de choisir l'image dans une liste déroulante de toutes les images jointes au message: http://loak.pastebin.com/xSuenJTK Dans cette tentative, le TinyMCE est cassé et la liste déroulante ne fonctionne pas.
Cela n'a probablement pas d'importance, mais juste au cas où vous vous poseriez la question, voici le code que j'utilise pour extraire le code intégré de la méta de publication personnalisée, le redimensionner et l'insérer dans la publication: http://loak.pastebin.com / n7pAzEAw
Il s'agit d'une version modifiée de la question d'origine pour refléter l'état actuel du projet et répond aux questions publiées dans les commentaires. Merci à Chris_O d' avoir mis la prime à ce sujet. Merci également à Rarst et Justin de m'avoir aidé avec beaucoup de choses sur le forum ThemeHybrid.com . J'ai passé des heures et des heures là-dessus et je suis coincé (j'ai passé quelques heures seul sur cette question). Toute aide serait grandement appréciée.