용어의 하위가 아닌 특정 사용자 지정 분류 용어에 할당 된 get_posts
4 대답
- 투표
-
- 2011-08-25
/wp-includes/taxonomy.php의 WP_Tax_Query 클래스를 살펴보면 기본값이true 인 'include_children'옵션이 있음을 알았습니다.원래get_posts () 호출을 다음과 같이 수정했으며 훌륭하게 작동합니다.
$pages = get_posts(array( 'post_type' => 'page', 'numberposts' => -1, 'tax_query' => array( array( 'taxonomy' => 'taxonomy-name', 'field' => 'term_id', 'terms' => 1, /// Where term_id of Term 1 is "1". 'include_children' => false ) ) ));
추가 검색어 매개 변수 목록 : http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters
In looking at the WP_Tax_Query class in /wp-includes/taxonomy.php, I found that there is a 'include_children' option which defaults to true. I modified my original get_posts() call with the following, and it works great:
$pages = get_posts(array( 'post_type' => 'page', 'numberposts' => -1, 'tax_query' => array( array( 'taxonomy' => 'taxonomy-name', 'field' => 'term_id', 'terms' => 1, /// Where term_id of Term 1 is "1". 'include_children' => false ) ) ));
List of more query parameters: http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters
-
링크 된 Codex 페이지에서 읽을 때tax_query 배열의 'field'값은 'id'가 아닌 'term_id'여야한다고 생각합니다. "가능한 값은 'term_id','name'및 'slug'입니다. 기본값은'term_id'. "나는 'id'가 기본값으로 대체되기 때문에 작동한다고 생각합니다.Reading from the Codex page linked to, I think the value of 'field' in the tax_query array should be 'term_id' rather than 'id': "Possible values are 'term_id', 'name' and 'slug'. Default value is 'term_id'." I'm guessing 'id' only works because it causes a fall-back to the default.
- 3
- 2015-09-26
- Jani Uusitalo
-
- 2011-08-24
이전에이 문제를 발견했습니다.
$tax = 'music'; $oterm = 'pop'; $term = get_term_by('slug', $oterm, $tax); $termChildren = get_term_children($term->term_id, $tax); $wp_query = new WP_Query(); $wp_query->query( array( 'posts_per_page' => '5', 'tax_query' => array( array( 'taxonomy' => $tax, 'field' => 'slug', 'terms' => $oterm ), array( 'taxonomy' => $tax, 'field' => 'id', 'terms' => $termChildren, 'operator' => 'NOT IN' ) ) ) );
just came across this the other day:
$tax = 'music'; $oterm = 'pop'; $term = get_term_by('slug', $oterm, $tax); $termChildren = get_term_children($term->term_id, $tax); $wp_query = new WP_Query(); $wp_query->query( array( 'posts_per_page' => '5', 'tax_query' => array( array( 'taxonomy' => $tax, 'field' => 'slug', 'terms' => $oterm ), array( 'taxonomy' => $tax, 'field' => 'id', 'terms' => $termChildren, 'operator' => 'NOT IN' ) ) ) );
-
- 2018-07-14
다음은 도움이되기를 바라는 완전한 코드입니다. 감사합니다
<?php $terms_array = array( 'taxonomy' => 'services', // you can change it according to your taxonomy 'parent' => 0 // If parent => 0 is passed, only top-level terms will be returned ); $services_terms = get_terms($terms_array); foreach($services_terms as $service): ?> <h4><?php echo $service->name; ?></h4> <?php $post_args = array( 'posts_per_page' => -1, 'post_type' => 'service', // you can change it according to your custom post type 'tax_query' => array( array( 'taxonomy' => 'services', // you can change it according to your taxonomy 'field' => 'term_id', // this can be 'term_id', 'slug' & 'name' 'terms' => $service->term_id, ) ) ); $myposts = get_posts($post_args); ?> <ul> <?php foreach ( $myposts as $post ) : setup_postdata( $post ); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endforeach; // Term Post foreach ?> </ul> <?php wp_reset_postdata(); ?> <?php endforeach; // End Term foreach; ?>
Here is complete code hope it helps. Thanks
<?php $terms_array = array( 'taxonomy' => 'services', // you can change it according to your taxonomy 'parent' => 0 // If parent => 0 is passed, only top-level terms will be returned ); $services_terms = get_terms($terms_array); foreach($services_terms as $service): ?> <h4><?php echo $service->name; ?></h4> <?php $post_args = array( 'posts_per_page' => -1, 'post_type' => 'service', // you can change it according to your custom post type 'tax_query' => array( array( 'taxonomy' => 'services', // you can change it according to your taxonomy 'field' => 'term_id', // this can be 'term_id', 'slug' & 'name' 'terms' => $service->term_id, ) ) ); $myposts = get_posts($post_args); ?> <ul> <?php foreach ( $myposts as $post ) : setup_postdata( $post ); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endforeach; // Term Post foreach ?> </ul> <?php wp_reset_postdata(); ?> <?php endforeach; // End Term foreach; ?>
-
다음 분류 용어가 있다고 가정 해 보겠습니다.
1.1 기 또는 1.2기에 할당 된 게시물은 포함하지 않고 1기에 만 할당 된 게시물 만 가져올 수 있습니까?
예 :
또한 약관 1.1 및 1.2가 지정된 게시물을 제공합니다.
감사합니다.