J'utilise register_taxonomy_for_object_type()
pour ajouter le champ Taxonomie des catégories aux téléchargements de médias (pièces jointes). J'utilise ce code pour le faire:
add_action('init', 'reg_tax');
function reg_tax() {
register_taxonomy_for_object_type('category', 'attachment');
}
Cela fonctionne et ajoute un simple champ de texte pour Catégorie à la page Média lors de l'affichage d'une image. Ce que je veux vraiment, c'est lui faire afficher la métabox des catégories réelles afin que je puisse choisir les catégories que je veux utiliser plutôt que de simplement les taper dans le champ clair. J'ai également constaté que le fait de placer le slug d'une catégorie dans ce champ de texte, par exemple, my-category-name
finit par s'afficher en tant que nom de catégorie réel, comme My Category Name
lorsqu'il est enregistré, ce qui rend le champ de texte simple encore moins une option utile.
J'ai regardé la add_post_type_support()
fonction pour ajouter des métaboxes et je l'ai vue utilisée pour les types de publication personnalisés, je ne vois tout simplement pas s'il est possible d'ajouter la même chose pour les pièces jointes.
la source
Réponses:
Edit: 12/09/2017 Voir cette réponse pour une solution plus à jour: Comment utiliser les taxonomies sur les pièces jointes avec la nouvelle médiathèque?
Je vais répondre à ma propre question ici car j'ai réussi à trouver une solution à ce que j'ai essayé de faire. Je suis arrivé à la conclusion qu'il n'était pas possible d'activer la catégorie Metabox pour les pièces jointes. Cependant, j'ai trouvé qu'il était assez facile d'obtenir un champ de base pour les catégories ajoutées à la page des pièces jointes en utilisant
register_taxonomy_for_object_type
etadd_post_type_support
:Le champ ajouté a montré comme ceci:
C'est juste un champ de texte brut mais ce que j'ai trouvé, c'est que vous pouvez taper le nom d'une catégorie existante là-dedans et il serait ensuite enregistré avec succès lorsque la pièce jointe a été mise à jour (Le seul comportement étrange est qu'il restituait la version normale au lieu de la limace après avoir sauvé).
Une fois que j'ai réalisé que je pouvais enregistrer des catégories de cette façon, j'ai pensé que je pourrais obtenir une liste de toutes les catégories disponibles sous forme de cases à cocher et vérifier celles qui avaient été sélectionnées. J'ai ensuite utilisé un peu de jQuery pour saisir les valeurs des catégories vérifiées et mettre tous les slugs des catégories dans le champ Catégorie. Pour que cela semble encore plus transparent, j'ai ensuite utilisé un peu de CSS pour masquer la ligne du tableau qui contenait le champ Catégorie, de sorte que tout ce que vous voyez est les cases à cocher, comme ceci:
Maintenant que je peux ajouter des catégories aux pièces jointes des images, je peux utiliser quelque chose comme:
Et tirez les images classées dans une page! Exactement ce que j'espérais faire, je ne pensais pas qu'il y aurait un moyen de le faire, mais heureux d'avoir réussi à comprendre quelque chose.
Je l'ai transformé en un plugin appelé
WOS Media Categories
que j'ai mis à disposition pour téléchargement à partir de mon site Web, Suburbia.org.uk , j'espère qu'il peut être utile à quelqu'un d'autre! Merci encore à ceux qui ont commenté cela et d'autres questions que j'ai posées ici qui ont aidé à le comprendre!Mise à jour: j'ai ajouté un correctif pour permettre l'ajout de catégories lors du téléchargement d'images à l'aide du programme de téléchargement groupé Flash.
la source
vient de créer ceci, qui est une solution complète au lien javascript de herky-jerk avec le champ de formulaire. Étant donné que les valeurs de vos cases à cocher sont transmises avec $ _POST lors de la soumission, vous pouvez simplement les récupérer pendant le filtre add_image_attachment_fields_to_save et définir les termes de l'objet de publication.
(notez que j'utilise une taxonomie personnalisée, et non des catégories, vous devrez donc modifier le tableau $ categories pour qu'il corresponde au même tableau que vous utilisez lorsque vous configurez vos cases à cocher)
Shabam, shabozzle. Prendre plaisir.
la source
wp_set_object_terms( $post['ID'], $terms, 'image-format' ); return $post;
. Et le script que vous avez publié n'exécute pas register_custom_taxonomies. Mais bon script quand même. Je vais certainement l'utiliser à l'avenir!C'est difficile / compliqué si vous souhaitez utiliser la boîte de catégorie par défaut de WordPress. D'une part, la métabox ne renvoie pas la sortie, elle la fait simplement écho. En plus de cela, il ne vous donnerait pas le nom de champ de saisie correct, il ne serait donc pas enregistré. Une idée pourrait être d'utiliser une saisie semi-automatique d'interface utilisateur jQuery pour répliquer la fonctionnalité de la zone de balises.
Cependant, si vous souhaitez jouer avec les champs de l'éditeur multimédia, vous pouvez vous connecter
'attachment_fields_to_edit'
et modifier le tableau de champs. Le filtre transmet deux arguments au rappel: le premier argument est le tableau de champs, le second est l'objet de publication de pièce jointe. Voir ici pour plus de détails:http://phpxref.ftwr.co.uk/wordpress/nav.html?wp-admin/includes/media.php.source.html#l1025
la source
attachment_fields_to_edit
et voir comment ça se passe.J'ai créé un plugin en utilisant les catégories de médias WOS de @ RickCurran comme point de départ. Cependant, les catégories de médias WOS, comme d'autres plugins qui ajoutent un support de catégorie aux médias, n'ajoutent pas réellement de métabox, je l'ai fait.
Sa forme nécessairement simplifiée des métaboxes sur les publications et les pages, mais j'ai inclus une capacité de filtrage qui le rend facile à utiliser.
Je génère en fait la métabox de catégorie entière que vous voyez sur les pages et les publications, mais en cachant les bits qui ne fonctionnent pas sur la page multimédia en raison à la fois d'un manque de style et du javascript manquant.
Je me réjouis de toutes les idées que n'importe qui pourrait avoir sur la façon de rendre la métabox entièrement fonctionnelle - quelque chose que j'ai l'intention de faire dans une version ultérieure.
la source
Super plugin Rick - très utile.
Si vous déplacez le déclencheur onclick en ligne au lieu de le lier à onload (et apportez quelques autres modifications mineures), cela fonctionnera également sur le programme de téléchargement groupé Flash. Avec la version actuelle, Flash se charge après l'événement de chargement jQuery, de sorte que les objets n'existent pas encore.
js révisé:
ajoutez onclick pour entrer dans le fichier php:
ajouter un identifiant de formulaire de téléchargement groupé au fichier css:
}
la source