J'ai un champ personnalisé my_cf
pour Taxonomy/Term. Comment puis-je obtenir et afficher une valeur avec un champ personnalisé pour taxonomie/terme?
J'ai essayé d'utiliser:
$variable = get_field('my_cf', 'basic');
echo $variable;
où basic - nom de ma taxonomie. Mais ça ne marche pas.
Aucune suggestion?
Je ne peux pas vraiment mieux l'expliquer que la page de documentation d'ACF que j'ai postée dans les commentaires :
Toutes les fonctions de l'API peuvent être utilisées avec un terme taxinomique, cependant, un deuxième paramètre est requis pour cibler l'ID du terme. Ceci est similaire à passer par un post_id pour cibler un objet post spécifique.
Le $ post_id requis est une chaîne contenant le nom de taxonomie + le terme ID au format suivant: $ TaxonomyName_ $ TermID
Donc, si votre champ personnalisé est my_cf
et que votre nom de taxonomie est basic
(not nom du terme) et que le terme ID dans votre taxonomie est 42, vous avez besoin:
$variable = get_field( 'my_cf', 'basic_42' );
Les données de votre champ sont-elles stockées dans wp_options? Si c'est le cas...
$term_id = 12345;
$term_meta = get_option( 'taxonomy_' . $term_id );
$my_cf = $term_meta[ 'my_cf' ];
echo $my_cf;
J'utilise CMB2 pour configurer des champs personnalisés, et la logique n'est pas si différente d'ACF dans de nombreux cas. Pour mon cas d'utilisation spécifique, j'ai créé une fonction très simple mais flexible afin d'effectuer quelques vérifications pour la taxonomie avant d'afficher le custom field value.
Considérant que l'on a créé un champ personnalisé nommé my_cf
pour disons un taxonomie named basic selon votre exemple, la fonction suivante pourrait aider à répondre à votre question et éventuellement étendre un peu l'utilisation de votre champ personnalisé .
function get_taxonomy_terms_custom_fields( $taxonomy = '' ) {
global $post;
$terms = get_the_terms( $post->ID, $taxonomy );
// Check if we have a taxonomy and that it is valid. If not, return false
if ( !$taxonomy )
return false;
// Sanitize the taxonomy input
$taxonomy = filter_var( $taxonomy, FILTER_SANITIZE_STRING );
// keep playing safe
if ( !taxonomy_exists( $taxonomy ) )
return false;
foreach ( $terms as $term ) {
// Set a variable for taxonomy term_id
$tax_term_id = $term->term_id;
$my_field = get_term_meta( $tax_term_id, 'my_cf', true );
// Make sure we do not have a WP_Error object, not really necessary, but better be safe
if ( is_wp_error( $term ) )
continue;
// escaping the returned value // esc_html(), esc_url(), esc_attr()
return esc_html($my_field);
}
}
Utilisez simplement <?php get_taxonomy_terms_custom_fields ('basic'); ?>
en remplaçant basic
par votre propre nom de taxonomie.
La fonction get_taxonomy_terms_custom_fields ()
vérifie la taxonomie spécifiée et le type de boucle dans toutes les catégories attribuées à une publication, post_type, puis renvoie la valeur du champ personnalisé, le cas échéant, en évitant les erreurs. Il pourrait également être étendu pour rechercher un champ produisant un tableau () tel qu'un champ répétable.
J'espère que ça aide - Bonne chance!