Get_the_terms - 모든 투고 유형을 표시합니다.
질문이 업데이트되었습니다.최신 버전은 아래를 참조하십시오.
커스텀 포스트를 사용할 때 모든 포스트 타입을 볼 수 없습니다.이는 동위원소를 기반으로 하며 사용자는 링크를 클릭하여 해당 카테고리 내의 게시물을 볼 수 있습니다.
Wordpress 표준 투고에 의해 작성된 모든 투고가 표시되지만 Types(Custom posts)에 의해 작성된 게시물은 없습니다.
<ul id="filters" class="whitetext whitelink myeluft">
<li><a href="#" data-filter="*" class="selected">Alle</a></li>
<li><a href='#' data-filter='.foto'>Foto</a></li>
<li><a href='#' data-filter='.video'>Video</a></li>
<li><a href='#' data-filter='.web'>Web</a></li>
</ul>
<?php $the_query = new WP_Query( 'posts_per_page=50' ); //Check the WP_Query docs to see how you can limit which posts to display ?>
<?php if ( $the_query->have_posts() ) : ?>
<div id="isotope-list">
<?php while ( $the_query->have_posts() ) : $the_query->the_post();
// Query posts - post_types
$anypost = get_posts( array(
'post_type' => 'any' // every post type, but not attachments
) );
$termsArray = get_the_terms( $post->ID, "category", $anypost); //Get the terms for this particular item
$termsString = ""; //initialize the string that will contain the terms
foreach ( $termsArray as $term ) { // for each term
$termsString .= $term->slug.' '; //create a string that has all the slugs
}
?>
<div class="<?php echo $termsString; ?> item col-md-3"> <?php // 'item' is used as an identifier (see Setp 5, line 6) ?>
<h3><?php the_title(); ?></h3>
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
} ?>
</div> <!-- end item -->
<?php endwhile; ?>
</div> <!-- end isotope-list -->
<?php endif; ?>
보시는 바와 같이, 아래의 코드를 삽입하여 수정해 보았습니다만, 아직 모든 포스트 타입이 표시되지 않습니다.
// Query posts - post_types
$anypost = get_posts( array(
'post_type' => 'any' // every post type, but not attachments
) );
$termsArray = get_the_terms( $post->ID, "category", $anypost); //Get the terms for this particular item
나는 이 기사를 읽었지만, 내 자신이 처음보다 더 많은 것을 잃었다는 것을 알았다.
어떤 솔루션이 효과적일까요?
갱신하다
이하의 코드를 사용하면, 모든 투고를 볼 수 있습니다만, 필터링 할 수 없습니다.페이지 참조: http://goo.gl/e3cLuM (모든 투고가 표시될 때까지 다운로드)
<?php $post_type = 'any';
$post_taxonomy = 'any';
// Get all
$terms = get_terms( $post_taxonomy );
$portfolio = new WP_Query('post_type='.$post_type.'&post_per_page=-1'); ?>
// First we loop our porfolio_category to show all categories as filter.
<ul id="filters" class="whitetext whitelink myeluft">
<a href="#" data-filter="*" class="selected"><li class="smoothtrans">Alle</li></a>
<a href='#' data-filter='.foto'><li class="smoothtrans">Foto</li></a>
<a href='#' data-filter='.video'><li class="smoothtrans">Video</li></a>
<a href='#' data-filter='.web'><li class="smoothtrans">Web</li></a>
</ul>
<?php if ( $portfolio->have_posts() ) : ?>
<div id="isotope-list">
<?php while ( $portfolio->have_posts() ) : $portfolio->the_post();
// Get current post terms.
$item_terms = wp_get_post_terms( get_the_ID(), $post_taxonomy, $args );
$classes = '';
// Append classes to use with each item.
foreach($item_terms as $item_term ){
$classes .= $item_term->slug.' ';
}
?>
<div class="<?php echo $termsString; ?> item col-md-4">
<ul class="grid cs-style-3">
<li>
<figure>
<?php // 'item' is used as an identifier (see Setp 5, line 6) ?>
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
} ?>
<figcaption class="lefttext">
<h3><?php the_title(); ?></h3>
<span class="offgrey">Nettside</span>
<a href="#" class="smoothtrans">Se prosjekt</a>
</figcaption>
</figure>
</li>
</ul>
</div> <!-- end item -->
<?php endwhile; ?>
</div> <!-- end isotope-list -->
<?php endif; ?>
라고 하는 커스텀 투고 타입이 있다고 가정합니다.portfolio
및 커스텀 분류법portfolio_category
<?php $post_type = 'portfolio';
$post_taxonomy = 'portfolio_category';
//First get all terms of portfolio_category.
$terms = get_terms( $post_taxonomy );
$portfolio = new WP_Query('post_type='.$post_type.'&post_per_page=-1'); ?>
// First we loop our porfolio_category to show all categories as filter.
<ul id="filters" class="whitetext whitelink myeluft">
<li><a href="#" data-filter="*" class="selected">All</a></li>
<?php foreach($terms as $term) : ?>
<li><a href='#' data-filter='.<?php echo $term->slug ?>'><?php echo $term->name ?></a></li>
<?php endforeach; ?>
</ul>
<?php if ( $portfolio->have_posts() ) : ?>
<div id="isotope-list">
<?php while ( $portfolio->have_posts() ) : $portfolio->the_post();
// Get current post terms.
$item_terms = wp_get_post_terms( get_the_ID(), $post_taxonomy, $args );
$classes = '';
// Append classes to use with each item.
foreach($item_terms as $item_term ){
$classes .= $item_term->slug.' ';
}
?>
<div class="<?php echo $classes; ?> item col-md-3">
<h3><?php the_title(); ?></h3>
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
} ?>
</div> <!-- end item -->
<?php endwhile; ?>
</div> <!-- end isotope-list -->
<?php endif; ?>
문제는 해결되었다.
드디어 다음 코드를 사용했습니다.
<ul id="filters" class="whitetext whitelink myeluft">
<a href="#" data-filter="*" class="selected"><li class="smoothtrans">Alle</li></a>
<a href='#' data-filter='.foto'><li class="smoothtrans">Foto</li></a>
<a href='#' data-filter='.video'><li class="smoothtrans">Video</li></a>
<a href='#' data-filter='.web'><li class="smoothtrans">Web</li></a>
</ul>
<?php
$terms = get_terms( $post_taxonomy );
$args = array(
'post_type' => 'any',
'posts_per_page' => 6,
'post_taxonomy' => 'any',
);
$the_query = new WP_Query($args);
// Loop post_type
?>
<?php if ( $the_query->have_posts() ) : ?>
<div id="isotope-list">
<?php while ( $the_query->have_posts() ) : $the_query->the_post();
$termsArray = get_the_terms( $post->ID, "category"); //Get the terms for this particular item
$termsString = ""; //initialize the string that will contain the terms
foreach ( $termsArray as $term ) { // for each term
$termsString .= $term->slug.' '; //create a string that has all the slugs
}
?>
<div class="<?php echo $termsString; ?> item col-md-4">
<ul class="grid cs-style-3">
<li>
<figure>
<?php // 'item' is used as an identifier (see Setp 5, line 6) ?>
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
} ?>
<figcaption class="lefttext">
<h3><?php the_title(); ?></h3>
<span class="offgrey"><?php echo(types_render_field( "produkt", array( 'raw' => true) )); ?> / <?php echo(types_render_field( "produsert", array( 'raw' => true) )); ?></span>
<a href="<?php the_permalink() ?>" rel="bookmark" class="smoothtrans">Se prosjekt</a>
</figcaption>
</figure>
</li>
</ul>
</div> <!-- end item -->
<?php endwhile; ?>
</div> <!-- end isotope-list -->
<script src="<?php bloginfo('stylesheet_directory'); ?>/js/toucheffects.js"></script>
<?php endif; ?>
내가 해야 할 변화는 그리 많지 않았지만 몇 가지 있었다.
코멘트를 해주시고 아이디어를 주신 모든 분들께 감사드립니다.
코드에 아직 수정하지 않은 버그가 있습니다.
그any
에 찬성하는 논거post_status
에 대해서는 인정되지 않는 것 같습니다.post_type
('post_status' => 'any'
(실제로 일부 버전에서는 올바르게 구현되지 않았습니다)
대신 post_type에 다음과 같은 몇 가지 유형의 어레이를 지정할 수 있습니다.
'post_type' => array('post','page','event')
언급URL : https://stackoverflow.com/questions/31201847/get-the-terms-display-all-post-types
'programing' 카테고리의 다른 글
Spring Boot 콘솔 기반 응용 프로그램 구조 (0) | 2023.03.13 |
---|---|
중첩된 JSONB 필드의 개체에 대한 Postgresql 쿼리 (0) | 2023.03.13 |
웹 API에 게시할 때 지원되지 않는 미디어 유형 오류 (0) | 2023.03.13 |
React.js에 로컬 영상 로드 (0) | 2023.03.13 |
함수의 PHP 코드입니다.공유 호스팅에 있는 모든 워드프레스 웹사이트의 php (0) | 2023.03.13 |