Je veux autoriser les virgules dans les noms de balises? Par exemple, "hello, world"
ou "portland, or"
mais Wordpress continue de les séparer. Je peux le faire depuis la page des catégories:
image http://img839.imageshack.us/img839/6869/picturepp.png
Et ça se voit bien. Mais tout ce qui est ajouté dans la barre latérale des messages ne s'affiche pas correctement ici:
image http://img52.imageshack.us/img52/4950/picture1oax.png
Il y a une discussion à ce sujet ici: http://core.trac.wordpress.org/ticket/14691 mais il semble que cela ne soit pas résolu, du moins pendant un certain temps.
En attendant, je cherche une solution plus simple que d'ajouter des catégories à partir de la page des catégories.
J'ai essayé de rechercher des plugins et je n'en ai vu aucun qui serait utile. Il y en a quelques-uns qui traitent du remplacement des virgules par d'autres caractères lors de l'affichage d'une liste de catégories ou de balises, mais je ne vois aucun plugin permettant à l'utilisateur de remplacer le séparateur par défaut.
Je m'en fiche si je dois patcher le noyau moi-même. Idéalement, je pourrais écrire un plugin, mais après avoir parcouru une partie du code, je ne sais pas où cela est géré.
Quelqu'un at-il une solution ou des conseils sur les fonctions et le javascript pour commencer le piratage? Je ne sais pas par où commencer à chercher dans le code.
Réponses:
Aucun piratage de base nécessaire - grâce à: CROCHETS.
Les crochets permettent de résoudre le problème avec une belle combinaison de
Voici le code:
Peut-être que quelques détails supplémentaires dans mon article de blog sur cette rubrique aident également. Http://blog.foobored.com/all/wordpress-tags-with-commas/
Salut, Andi
la source
_x( ',', 'tag delimiter' )
pour attraper le vrai délimiteur.Il est possible et très facile d'enregistrer des balises avec des virgules par programme.
Lors de l'appel
wp_set_post_terms( $post_id, $terms, $taxonomy )
, si vous fournissez une chaîne, elle sera éclatée dans un tableau. Si vous fournissez votre$terms
sous forme de tableau, chaque élément du tableau sera fourni en tant que terme propre sans être divisé en plusieurs termes.Les deux
wp_insert_post
et ensuitewp_update_post
utiliserwp_set_post_terms
lorsque le$arg
tax_input
est défini.La meilleure façon de créer des termes à la volée à l'aide de l'interface utilisateur de WordPress Dashboard, peut vous obliger à créer votre propre méta-boîte qui soumet toute chaîne, y compris les virgules, comme un seul terme. Certains plugins, comme ACF Pro, le font par défaut lorsque vous créez un champ personnalisé pour enregistrer la taxonomie, et choisissez de charger et d'affecter également les termes lors de l'enregistrement.
Même lorsqu'ils sont enregistrés avec une virgule, chaque partie de ces termes avec des virgules peut toujours apparaître comme des éléments distincts lors de la modification de la publication. Dans ce cas, il peut être préférable de désactiver l'interface utilisateur par défaut et de s'appuyer sur les métadonnées personnalisées. Cela peut être fait en utilisant les options d'écran lors de la modification d'un type de publication. Les taxonomies personnalisées peuvent également être masquées dans la section d'édition rapide lors de l'enregistrement.
la source
add_filter( 'pre_tax_input', function( $tax_input ) { return (array) $tax_input; } );
cependant, il ne vous permettra de soumettre qu'un seul terme à la fois.vous pouvez utiliser un filtre.
Par exemple, si vous souhaitez ajouter une virgule après chaque balise dans un nuage de balises, vous pouvez mettre ce qui suit dans vos fonctions.php
la source
Voici votre solution de pose. Faites attention à la ligne 2614:
À l'intérieur de wp-includes / taxonomy.php . Bonne chance en piratant le code. il n'y a pas de crochet. c'est codé en dur ... Désolé. Je pense que le piratage du code est votre seule option pour l'instant.
la source
Les virgules dans les noms de balises ne fonctionneront pas correctement car, lors de l'ajout de la balise à un article, WordPress l'analysera en plusieurs mots-clés, en coupant la virgule.
Une solution simple:
Utilisez
,
( le code HTML de la virgule ) au lieu d'une virgule ordinaire.Alors:
,
s'affichera comme une belle virgule à l'intérieur des articles, des titres des pages de balises et d'un tas d'autres endroits.,
, à l'intérieur de l'interface d'administration lors de la saisie du nom de la balise.FYI, en utilisant l'entité HTML,
,
ne fonctionne pas.la source