Comment obtenir une liste de balises pour un type de publication particulier dans wordpress ?

Publié par Jean-Michel le

Je voulais imprimer la liste des balises pour ma page de type de publication particulière. J’ai utilisé toutes les fonctions pour récupérer les balises. mais cela me donne toute la liste des balises, y compris celles utilisées dans d’autres types de messages.

Solution n°1 trouvée

Pour créer un type de filtre de widget. cela doit être nécessaire pour récupérer la liste des balises selon les types de publication.

pour cela, j’ai créé une fonction générique par laquelle vous pouvez répertorier les balises ou toute liste de taxonomie selon le type de publication.

function get_terms_by_post_type( $taxo_term, $post_types ) {

global $wpdb;
$query = $wpdb->prepare(
                            "SELECT term.*, COUNT(*) from $wpdb->terms AS term
                            INNER JOIN $wpdb->term_taxonomy AS texo ON term.term_id = texo.term_id
                            INNER JOIN $wpdb->term_relationships AS tr ON tr.term_taxonomy_id = texo.term_taxonomy_id
                            INNER JOIN $wpdb->posts AS post ON post.ID = tr.object_id
                            WHERE post.post_type IN('%s') AND texo.taxonomy IN('%s')
                            GROUP BY term.term_id",
                            join( "', '", $post_types ),
                            join( "', '", $taxo_term)
                        );

$results = $wpdb->get_results( $query );
return $results;

}

Appelez cette fonction et passez le terme de taxonomie et le type de publication. il vous donnera un tableau de balises.

Solution n°2 trouvée

<!-- begin custom related loop, isa -->

<?php

// get the custom post type's taxonomy terms

$custom_taxterms = wp_get_object_terms( $post->ID, 'your_taxonomy', array('fields' => 'ids') );
// arguments
$args = array(
'post_type' => 'your_custom_post_type',
'post_status' => 'publish',
'posts_per_page' => 3, // you may edit this number
'orderby' => 'rand',
'tax_query' => array(
    array(
        'taxonomy' => 'your_taxonomy',
        'field' => 'id',
        'terms' => $custom_taxterms
    )
),
'post__not_in' => array ($post->ID),
);
$related_items = new WP_Query( $args );
// loop over query
if ($related_items->have_posts()) :
echo '<ul>';
while ( $related_items->have_posts() ) : $related_items->the_post();
?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
echo '</ul>';
endif;
// Reset Post Data
wp_reset_postdata();
?>
Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *