Ottieni post in tassonomia personalizzata
-
-
i valori validiper "field"in una queryfiscale sono "term_id","name" o "slug".valid values for `field` in a tax query are `term_id`, `name`, or `slug`.
- 1
- 2014-10-16
- Milo
-
4 risposta
- voti
-
- 2014-10-16
Latua queryfiscalenon è corretta,
field
dovrebbeessereil campo su cui desiderieseguire la query:term_id
,name
oslug
-$posts_array = get_posts( array( 'posts_per_page' => -1, 'post_type' => 'fabric_building', 'tax_query' => array( array( 'taxonomy' => 'fabric_building_types', 'field' => 'term_id', 'terms' => $cat->term_id, ) ) ) );
Your tax query is incorrect,
field
should be the field you want to query on:term_id
,name
, orslug
-$posts_array = get_posts( array( 'posts_per_page' => -1, 'post_type' => 'fabric_building', 'tax_query' => array( array( 'taxonomy' => 'fabric_building_types', 'field' => 'term_id', 'terms' => $cat->term_id, ) ) ) );
-
comeimpaginare questipost dopo averli ricevuti?how to paginate this posts after get their?
- 0
- 2018-09-28
- Andreas Hunter
-
- 2014-10-16
Dovresti usare
get_terms()
per letassonomie quandopuoi.<?php /* Add your taxonomy. */ $taxonomies = array( 'fabric_building_types', ); $args = array( 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => true, 'exclude' => array(), 'exclude_tree' => array(), 'include' => array(), 'number' => '', 'fields' => 'all', 'slug' => '', 'parent' => '', 'hierarchical' => true, 'child_of' => 0, 'get' => '', 'name__like' => '', 'description__like' => '', 'pad_counts' => false, 'offset' => '', 'search' => '', 'cache_domain' => 'core' ); $terms = get_terms( $taxonomies, $args ); foreach ( $terms as $term ) { // here's my code for getting the posts for custom post type $posts_array = get_posts( array( 'showposts' => -1, 'post_type' => 'fabric_building', 'tax_query' => array( array( 'taxonomy' => 'fabric_building_types', 'field' => term_id, 'terms' => $term->name, ) ) ) ); print_r( $posts_array ); } ?>
Collegamento al Codex : http://codex.wordpress.org/Function_Reference/get_terms
You should use
get_terms()
for taxonomies when you can.<?php /* Add your taxonomy. */ $taxonomies = array( 'fabric_building_types', ); $args = array( 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => true, 'exclude' => array(), 'exclude_tree' => array(), 'include' => array(), 'number' => '', 'fields' => 'all', 'slug' => '', 'parent' => '', 'hierarchical' => true, 'child_of' => 0, 'get' => '', 'name__like' => '', 'description__like' => '', 'pad_counts' => false, 'offset' => '', 'search' => '', 'cache_domain' => 'core' ); $terms = get_terms( $taxonomies, $args ); foreach ( $terms as $term ) { // here's my code for getting the posts for custom post type $posts_array = get_posts( array( 'showposts' => -1, 'post_type' => 'fabric_building', 'tax_query' => array( array( 'taxonomy' => 'fabric_building_types', 'field' => term_id, 'terms' => $term->name, ) ) ) ); print_r( $posts_array ); } ?>
Link to Codex: http://codex.wordpress.org/Function_Reference/get_terms
-
Grazie ...ma rimane lo stessoproblema..array vuoto .. èperché stofacendo qualcosa di sbagliatonella definizione deltipo dipostpersonalizzatopoiché ricevoiltermine array ..Thanks...but the same issue remains..empty array.. is it because i am doing something wrong in defining custom post type as i am getting the term array..
- 0
- 2014-10-16
- Parth Kumar
-
Haigiàprovatoil codice aggiornato sopra?Have you tried the updated code above yet?
- 0
- 2014-10-16
- Courtney Ivey
-
In realtà,come suggerito da Milo,il campoprenderà una stringa..questoera l'errore..che ho risolto ..Actually as Milo suggested, the field will take a string..that was the error..which i got resolved..
- 1
- 2014-10-16
- Parth Kumar
-
- 2016-09-14
global $post; $id = $post->ID; $cat = get_the_category($id); $loc = get_the_terms($id, 'taxonomy'); $posts = get_posts( array('post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => -1, 'category' => $cat[0]->term_id, 'tax_query' => array( array( 'taxonomy' => 'location', 'field' => 'id', 'terms' => $loc[0]->term_id, ) ) ) ); print_r($posts);
dovrebbefunzionare.
global $post; $id = $post->ID; $cat = get_the_category($id); $loc = get_the_terms($id, 'taxonomy'); $posts = get_posts( array('post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => -1, 'category' => $cat[0]->term_id, 'tax_query' => array( array( 'taxonomy' => 'location', 'field' => 'id', 'terms' => $loc[0]->term_id, ) ) ) ); print_r($posts);
this should be works.
-
- 2018-06-27
Recupero deipost assegnati allatassonomia corrente
Puoi aggiungereil codice seguentein taxonomy-your_tax.php
<div class="a-article-wrapper"> <?php $terms = wp_get_post_terms( $post->ID, 'your-taxonomy'); $terms_ids = []; foreach ( $terms as $term ) { $terms_ids[] = $term->term_id; } $args = array( 'post_type' => 'your-post-type', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'your-taxonomy', 'field' => 'term_id', 'terms' => $terms_ids ) ), ); $query = new WP_Query($args); if ( $query->have_posts() ) { while ( $query->have_posts() ) { ?> <div class="row"> <div class="col-md-8 a-article-row"> <div class="row"> <?php $query->the_post();?> <div class="a-post-time"> <span class="a-current-date"><?php the_time('j F, D') ?></span> <span class="a-current-time"><?php the_time('g:i a') ?></span> </div> <div class="a-article-title"> <?php the_title(); ?> </div> <div class="a-article-content"> <div id="excerpt"><?php the_excerpt(); ?></div> <?php the_content(); ?> </div> <div class="a-article-tags"> <?php echo get_the_term_list( get_the_ID(), 'your-taxonomy', '', ',' ); ?> </div> </div> </div> </div> <?php } } ?> </div>
Getting posts assigned to current taxonomy
You can add below code in taxonomy-your_tax.php
<div class="a-article-wrapper"> <?php $terms = wp_get_post_terms( $post->ID, 'your-taxonomy'); $terms_ids = []; foreach ( $terms as $term ) { $terms_ids[] = $term->term_id; } $args = array( 'post_type' => 'your-post-type', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'your-taxonomy', 'field' => 'term_id', 'terms' => $terms_ids ) ), ); $query = new WP_Query($args); if ( $query->have_posts() ) { while ( $query->have_posts() ) { ?> <div class="row"> <div class="col-md-8 a-article-row"> <div class="row"> <?php $query->the_post();?> <div class="a-post-time"> <span class="a-current-date"><?php the_time('j F, D') ?></span> <span class="a-current-time"><?php the_time('g:i a') ?></span> </div> <div class="a-article-title"> <?php the_title(); ?> </div> <div class="a-article-content"> <div id="excerpt"><?php the_excerpt(); ?></div> <?php the_content(); ?> </div> <div class="a-article-tags"> <?php echo get_the_term_list( get_the_ID(), 'your-taxonomy', '', ',' ); ?> </div> </div> </div> </div> <?php } } ?> </div>
Non ricevoi postnellatassonomiapersonalizzata (
fabric_building_types
). Ricevo anchecat_id
ecat->name
manon riesco a riceverei post.Qualcunopuò darmi unamano ... Graziein anticipo