Récupérer une valeur dans un champ personnalisé avec taxonomie [fermé]

4

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.

Des suggestions?

    
posée John Genry 03.11.2013 - 20:16

3 réponses

3

Je ne peux pas vraiment l'expliquer mieux que le La page de documentation d’ACF que j’ai publiée dans les commentaires :

  

Toutes les fonctions de l'API peuvent être utilisées avec un terme de taxonomie. Cependant, un second 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 required est une chaîne contenant le nom de taxonomie + l'ID de terme au format suivant: $ TaxonomyName_ $ TermID

Donc, si votre champ personnalisé est my_cf , et votre nom de taxonomie est basic ( pas nom du terme) et si le terme ID de votre taxonomie est 42, il vous faut:

$variable = get_field( 'my_cf', 'basic_42' );
    
réponse donnée Milo 04.11.2013 - 01:01
1

Vos données de champ sont-elles stockées dans wp_options? Si oui ...

$term_id = 12345;
$term_meta = get_option( 'taxonomy_' . $term_id );
$my_cf = $term_meta[ 'my_cf' ];
echo $my_cf;
    
réponse donnée Joey Yax 03.11.2013 - 23:55
1

J'utilise CMB2 pour configurer des champs personnalisés, et la logique n'est pas si différente de celle d'ACF. 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 la valeur champ personnalisé .

Etant donné que quelqu'un a créé un champ personnalisé nommé my_cf pour une taxonomie nommée basic , comme indiqué dans votre exemple, la fonction suivante peut aider à répondre à votre question et peut-être é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 et le type de boucle spécifiés pour toutes les catégories attribuées à un article, post_type, puis renvoie la valeur du champ personnalisé, le cas échéant, en évitant les erreurs si ce n’est pas le cas. Il pourrait également être étendu pour rechercher un champ produisant un tableau () tel qu'un champ répétable.

J'espère que cela vous aidera - Bonne chance!

    
réponse donnée Adriano Monecchi 16.05.2016 - 17:40

Lire d'autres questions sur les étiquettes