분류별로 맞춤 게시물 유형의 모든 게시물 나열
5 대답
- 투표
-
- 2012-09-25
해보기
$custom_terms = get_terms('custom_taxonomy'); foreach($custom_terms as $custom_term) { wp_reset_query(); $args = array('post_type' => 'custom_post_type', 'tax_query' => array( array( 'taxonomy' => 'custom_taxonomy', 'field' => 'slug', 'terms' => $custom_term->slug, ), ), ); $loop = new WP_Query($args); if($loop->have_posts()) { echo '<h2>'.$custom_term->name.'</h2>'; while($loop->have_posts()) : $loop->the_post(); echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>'; endwhile; } }
분류의 모든 용어를 가져 와서 반복하고 해당 용어에 속한 각 게시물의 제목 링크를 시작합니다. 분류 용어를 재정렬해야하는 경우 플러그인을 사용하면 매우 쉽게 할 수 있습니다. 분류 재정렬 을 믿습니다. 하지만 이 플러그인은 활성화 시 테이블에 다른 열을 추가 (!)하고 비활성화시 제거하지 않습니다 .
Try this
$custom_terms = get_terms('custom_taxonomy'); foreach($custom_terms as $custom_term) { wp_reset_query(); $args = array('post_type' => 'custom_post_type', 'tax_query' => array( array( 'taxonomy' => 'custom_taxonomy', 'field' => 'slug', 'terms' => $custom_term->slug, ), ), ); $loop = new WP_Query($args); if($loop->have_posts()) { echo '<h2>'.$custom_term->name.'</h2>'; while($loop->have_posts()) : $loop->the_post(); echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>'; endwhile; } }
We get all the terms of a taxonomy, loop through them, and fire off a title link to each post that belongs to that term. If you need to reorder the taxonomy terms, you can do so with a plugin pretty easily. Reorder Taxonomy, I believe. But pay attention that this plugin adds(!) another column to your table on activation and does not remove it upon deactivation!
-
안녕하세요 @GhostToast 이것은 훌륭하게 작동합니다. 직접 질문이 있습니다. 분류별로 어떻게 필터링 할 수 있습니까? 테니스,골프,축구,배구가 있습니다.이 코드는 분류가 확인 된 게시물을 모두 가져옵니다. 어떻게 필터링 할 수 있습니까?게시물과 함께 Soccer Taxonomy 만 표시합니다.Hi @GhostToast This works great, I have a direct question, how can I filter this by taxonomy, I have tennis, golf, soccer, voleyball, this codes brings them all with their post that have the taxonomy checked, How can I filter to only show the Soccer Taxonomy with its posts.
- 0
- 2017-03-07
- Rodrigo Zuluaga
-
@RodrigoZuluaga는 기본 단일 쿼리가 될 것입니다.`$ custom_terms` 및`foreach ()`를 제거하고 슬러그 또는 원하는대로` 'terms'`를 수동으로 정의합니다.@RodrigoZuluaga that would be a basic single query then. take away `$custom_terms` and the `foreach()` and just define `'terms'` manually to the slug or whatever you want.
- 0
- 2017-03-07
- GhostToast
-
조금 다르게 생각하지만 코드는 훌륭합니다. $ args=array ( 'post_type'=> 'publica', 'tax_query'=> 배열 ( 정렬( '분류'=> 'comision-publicaciones', '필드'=> '이름', '용어'=> 배열 ($ter_name) ), ), );I got it little different I think but your code hell good $args = array('post_type' => 'publica', 'tax_query' => array( array( 'taxonomy' => 'comision-publicaciones', 'field' => 'name', 'terms' => array($ter_name) ), ), );
- 0
- 2017-03-08
- Rodrigo Zuluaga
-
- 2012-09-25
특별히 우아한 솔루션은 아니지만 특정 용어에 대해 각각 여러 개의 쿼리를 만든 다음 출력 할 수 있습니다. 누군가가 자동으로 용어를 가져 와서 출력/정렬을 수정하는 더 좋은 방법을 찾을 수 있기를 바랍니다. 하지만 이렇게하면 성공할 수 있습니다.
<?php //First Query for Posts matching term1 $args = array( 'tax_query' => array( array( 'taxonomy' => 'taxonomy_1', 'field' => 'slug', 'terms' => array( 'term1' ) ), ), 'post_type' => 'my-post-type' ); $query = new WP_Query( $args ); if ( have_posts() ) { $term = $query->queried_object; echo 'All posts found in ' . $term->name; while ( have_posts() ) : the_post(); //Output what you want the_title(); the_content(); endwhile; } //RESET YOUR QUERY VARS wp_reset_query(); //Second Query for term2 $args = array( 'tax_query' => array( array( 'taxonomy' => 'taxonomy_1', 'field' => 'slug', 'terms' => array( 'term2' ) ), ), 'post_type' => 'my-post-type' ); $query = new WP_Query( $args ); if ( have_posts() ) { $term = $query->queried_object; echo 'All posts found in ' . $term->name; while ( have_posts() ) : the_post(); //Output what you want the_title(); the_content(); endwhile; }
Not a particularly elegant solution but you can create multiple queries each for the specific terms and then output them. Hopefully someone can come up with a nicer way of automatically pulling the terms to modify the output/sorting. But this would get you going.
<?php //First Query for Posts matching term1 $args = array( 'tax_query' => array( array( 'taxonomy' => 'taxonomy_1', 'field' => 'slug', 'terms' => array( 'term1' ) ), ), 'post_type' => 'my-post-type' ); $query = new WP_Query( $args ); if ( have_posts() ) { $term = $query->queried_object; echo 'All posts found in ' . $term->name; while ( have_posts() ) : the_post(); //Output what you want the_title(); the_content(); endwhile; } //RESET YOUR QUERY VARS wp_reset_query(); //Second Query for term2 $args = array( 'tax_query' => array( array( 'taxonomy' => 'taxonomy_1', 'field' => 'slug', 'terms' => array( 'term2' ) ), ), 'post_type' => 'my-post-type' ); $query = new WP_Query( $args ); if ( have_posts() ) { $term = $query->queried_object; echo 'All posts found in ' . $term->name; while ( have_posts() ) : the_post(); //Output what you want the_title(); the_content(); endwhile; }
-
- 2014-07-10
잘하셨습니다! GhostOne의 솔루션은 제가 찾고 있던 것이 었습니다. 제 상황에서 사용자 지정 게시물 유형은 'minining_accidents'였고 이와 관련된 사용자 지정 분류는 여러 용어가있는 '사고 유형'이었습니다. 내 생각은이 사용자 지정 분류의 용어 아래에 게시물 목록을 표시하는 사용자 지정 위젯을 만드는 것이 었습니다. 내 시험 실행에서 내가 원하는 것을 얻었습니다. 나머지는 가문비 나무였습니다. 내 코드는 다음과 같습니다.
function fn_get_list_of_mining_accident_types() { $custom_taxonomy='accident-types'; $custom_terms = get_terms($custom_taxonomy); $str_return='<ul>'; foreach($custom_terms as $custom_term) { wp_reset_query(); $args = array( 'post_type' => 'minining_accidents', 'tax_query' => array( array( 'taxonomy' => $custom_taxonomy, 'field' => 'slug', 'terms' => $custom_term->slug, ), ), ); $loop = new WP_Query($args); $term_name=$custom_term->name; $term_slug=$custom_term->slug; $term_link=get_term_link($term_slug, $custom_taxonomy); $str_return.='<li><a href="'.$term_link.'">'.$term_name.'</a>'; if($loop->have_posts()) { $str_return.='<ol>'; while($loop->have_posts()) : $loop->the_post(); $str_return.='<li><a href="'.get_permalink().'">'.get_the_title().'</a></li> '; endwhile; $str_return.='</ol>'; } $str_return.='</li>'; } $str_return.='</ul>'; return $str_return; }
예! 코드를 더욱 개선 할 수있는 옵션은 항상 있습니다.
Nice one! GhostOne's solution was what I had been looking for. In my situation the custom post type was 'minining_accidents' and custom taxonomies associated with this was 'accident-types' which had multiple terms under it. My idea was to create a custom widget to show list of posts under terms in this custom taxonomies. In my trial run it got what I wanted. Rest was spruce up. Here is my code:
function fn_get_list_of_mining_accident_types() { $custom_taxonomy='accident-types'; $custom_terms = get_terms($custom_taxonomy); $str_return='<ul>'; foreach($custom_terms as $custom_term) { wp_reset_query(); $args = array( 'post_type' => 'minining_accidents', 'tax_query' => array( array( 'taxonomy' => $custom_taxonomy, 'field' => 'slug', 'terms' => $custom_term->slug, ), ), ); $loop = new WP_Query($args); $term_name=$custom_term->name; $term_slug=$custom_term->slug; $term_link=get_term_link($term_slug, $custom_taxonomy); $str_return.='<li><a href="'.$term_link.'">'.$term_name.'</a>'; if($loop->have_posts()) { $str_return.='<ol>'; while($loop->have_posts()) : $loop->the_post(); $str_return.='<li><a href="'.get_permalink().'">'.get_the_title().'</a></li> '; endwhile; $str_return.='</ol>'; } $str_return.='</li>'; } $str_return.='</ul>'; return $str_return; }
Yes! There always is an option to further improve the code.
-
- 2020-06-14
이 스레드에 오기 전에 시도한 긴 솔루션입니다. 누군가가 더 잘 이해하는 데 도움이되기를 바랍니다.
<사전> <코드> & lt;?php //모든 분류 용어 목록 가져 오기-간단한 카테고리 제목 $ args=array ( '분류'=> '프로젝트 _ 카테고리', 'orderby'=> '이름', '주문'=> 'ASC' ); $ cats=get_categories ($ args); //사용자 지정 분류의 모든 용어에 대해term_id로 게시물을 가져옵니다. foreach ($ cats as $ cat) { ? > & lt; a href="& lt;?phpechoget_category_link ($ cat- >term_id)? >"> & lt;?phpecho $ cat- > 이름;? > & lt;br > & lt;?php//echo $ cat- >term_id;? > & lt;br > & lt;/a > & lt;?php //쿼리 인수 $ args=array ( 'post_type'=> 'portfolio',//포스트 유형 'tax_query'=> 정렬( 정렬( '분류'=> 'project_category',//커스텀 어휘 '필드'=> 'term_id',//term_id,slug 또는 이름 (아래 용어를 검색하려는 항목으로 정의) '약관'=> $ cat- >term_id,//슬러그라는 용어 제공 ), ), ); //쿼리 $the_query=새로운 WP_Query ($ args); //루프 if ($the_query- > have_posts ()) { echo '& lt; h2 > 이 태그로 태그가 지정된 게시물 목록 & lt;/h2 > '; echo '& lt; ul >'; $ html_list_items=''; while ($the_query- > have_posts ()) { $the_query- >the_post (); $ html_list_items.='& lt; li >'; $ html_list_items.='& lt; a href="'.get_permalink (). '">'; $ html_list_items.=get_the_title (); $ html_list_items.='& lt;/a >'; $ html_list_items.='& lt;/li >'; } echo $ html_list_items; 에코 '& lt;/ul >'; }else { //게시물이 없습니다. } wp_reset_postdata ();//전역 $post 재설정; ? > & lt;?php}? >This is long solution i tried before coming to this thread. Hope this may help someone to understand better.
<?php // Get list of all taxonomy terms -- In simple categories title $args = array( 'taxonomy' => 'project_category', 'orderby' => 'name', 'order' => 'ASC' ); $cats = get_categories($args); // For every Terms of custom taxonomy get their posts by term_id foreach($cats as $cat) { ?> <a href="<?php echo get_category_link( $cat->term_id ) ?>"> <?php echo $cat->name; ?> <br> <?php // echo $cat->term_id; ?> <br> </a> <?php // Query Arguments $args = array( 'post_type' => 'portfolio', // the post type 'tax_query' => array( array( 'taxonomy' => 'project_category', // the custom vocabulary 'field' => 'term_id', // term_id, slug or name (Define by what you want to search the below term) 'terms' => $cat->term_id, // provide the term slugs ), ), ); // The query $the_query = new WP_Query( $args ); // The Loop if ( $the_query->have_posts() ) { echo '<h2> List of posts tagged with this tag </h2>'; echo '<ul>'; $html_list_items = ''; while ( $the_query->have_posts() ) { $the_query->the_post(); $html_list_items .= '<li>'; $html_list_items .= '<a href="' . get_permalink() . '">'; $html_list_items .= get_the_title(); $html_list_items .= '</a>'; $html_list_items .= '</li>'; } echo $html_list_items; echo '</ul>'; } else { // no posts found } wp_reset_postdata(); // reset global $post; ?> <?php } ?>
-
- 2014-07-29
맞춤 분류에서 맞춤 게시물 목록을 표시하려면
$args = array( 'tax_query' => array( array( 'taxonomy' => 'your-custom-taxonomy', 'field' => 'slug', 'terms' => array( 'your-term' ) ), ), 'post_type' => 'your-post-type' ); $loop = new WP_Query($args); if($loop->have_posts()) { $term = $wp_query->queried_object; while($loop->have_posts()) : $loop->the_post(); //Output what you want echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>'; endwhile; }
제목
- 목록 항목
- 목록 항목
- 목록 항목
To show a list of custom posts from a custom taxonomy
$args = array( 'tax_query' => array( array( 'taxonomy' => 'your-custom-taxonomy', 'field' => 'slug', 'terms' => array( 'your-term' ) ), ), 'post_type' => 'your-post-type' ); $loop = new WP_Query($args); if($loop->have_posts()) { $term = $wp_query->queried_object; while($loop->have_posts()) : $loop->the_post(); //Output what you want echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>'; endwhile; }
Title
- List item
- List item
- List item
특정 사용자 지정 게시물 유형의 모든 게시물을 나열하고 첨부 된 사용자 지정 분류 용어로 정렬 할 수있는 방법이 있습니까?
예 :
Taxonmy 용어 # 1
포스트 유형
포스트 유형
게시물 유형
분류 용어 # 2
포스트 유형
게시물 유형
어떤 도움을 주시면 감사하겠습니다.
감사합니다.