Obtenha postagens sob taxonomia personalizada
-
-
Valores válidospara `campo 'em uma consulta deimposto são`term_id`,`nome`,ou` slug`.valid values for `field` in a tax query are `term_id`, `name`, or `slug`.
- 1
- 2014-10-16
- Milo
-
4 respostas
- votos
-
- 2014-10-16
sua consultafiscalestáincorreta,
field
deve ser o campo que você deseja consultar:term_id
,name
ouslug
-$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, ) ) ) );
-
Comopaginaresteposts depois de receber o seu?how to paginate this posts after get their?
- 0
- 2018-09-28
- Andreas Hunter
-
- 2014-10-16
Você deve usar
get_terms()
parataxonomias quandopuder.<?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 ); } ?>
linkto 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
-
Obrigado ...mas omesmoproblemapermanece..ampty array .. éporqueestoufazendo algoerradona definição detipopersonalizado comoeuestou recebendo otermo 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
-
Vocêjátentou o código atualizado acima ainda?Have you tried the updated code above yet?
- 0
- 2014-10-16
- Courtney Ivey
-
Na verdade,como Milo sugeriu,o campo vai levar uma string..quefoi oerro ..queeufui resolvido ..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);
Isso deve serfunciona.
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
Obtendopostagens atribuídas àtaxonomia atual
Vocêpode adicionar código abaixoem 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>
Eunãoestou recebendo aspostagens sobtaxonomiapersonalizada (
fabric_building_types
). Euestou recebendocat_id
ecat->name
também,masnão é capaz de obter osposts.Alguémpodeporfavorme ajudar ... obrigado antecipadamente