[英]Creating if statements to filter posts by category from cpt in wordpress
我正在嘗試將cpt中的帖子放入不同的引導標簽。
到目前為止,我在第一個選項卡上獲得了所有帖子標題。 然后,我在第二個選項卡上獲得一個帖子標題,在以下兩個選項卡上獲得相同的標題。 類別不是自定義分類法,而是與自定義帖子類型關聯的默認wordpress類別。 自定義帖子類型稱為“ journal”,代碼位於archive-journal.php中
的PHP
<!-- Tab panes -->
<div class="tab-content">
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<!-- cambridge winter college -->
<div role="tabpanel" class="tab-pane active" id="tab1">
<!-- accordian -->
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<?php if (in_category('cambridge-winter-college')) ?>
<?php the_title(); ?>
</div>
<!-- / accordian -->
<div class="terminator"></div>
</div>
<!-- / cambridge winter college -->
<!-- oxford summer 1 -->
<div role="tabpanel" class="tab-pane" id="tab2">
<!-- oxford summer college 1 -->
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<?php if (in_category('oxford_summer_college_1')) ?>
<?php the_title(); ?>
</div>
</div>
<!-- / oxford summer 1 -->
<!-- oxford summer college 2 -->
<div role="tabpanel" class="tab-pane" id="tab3">
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<?php if (in_category('oxford_summer_college_2')) ?>
<?php the_title(); ?>
</div>
</div>
<!-- / oxford summer college 2 -->
<!-- cambridge summer college -->
<div role="tabpanel" class="tab-pane" id="tab4">
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<?php if (in_category('cambridge_summer_college')) ?>
<?php the_title(); ?>
</div>
</div>
<!-- /cambridge summer college -->
<?php endwhile; ?>
<?php endif; ?>
</div>
<!-- / tab content -->
關於如何實現這一目標的任何想法?
謝謝
您必須重新組織代碼的結構。 這里的問題是您正在顯示每個帖子的所有選項卡,因為選項卡位於循環內。
嘗試執行以下操作:
<div class="tab-content">
<?php if ( have_posts() ) : ?>
<!-- cambridge winter college -->
<div role="tabpanel" class="tab-pane active" id="tab1">
<!-- accordian -->
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<?php while ( have_posts() ) : the_post(); ?>
<?php if (in_category('cambridge-winter-college')) : ?>
<?php the_title(); ?>
<?php endif; ?>
<?php endwhile; ?>
</div>
<!-- / accordian -->
<div class="terminator"></div>
</div>
<!-- / cambridge winter college -->
<?php rewind_posts(); ?>
<!-- REPEAT THE CODE ABOVE FOR OTHER TABS -->
<?php endif; ?>
</div>
<!-- / tab content -->
這樣,您將循環瀏覽選項卡內的帖子。
讓我知道是否可行。
更新
在每個循環之間調用rewind_posts()
。
經過很多努力和思考,我找到了答案。 我在wordpress閱讀設置中將我的最高帖子設置為10 !! h! 因此,通過更改該設置或更有效的方法,可以實現非常簡單的修復,這是我在CSS技巧中找到的。 它使用-1設置為CPT調用所有帖子。 將日記更改為您的cpt名稱。
的PHP
// CPT all posts in Archive layout
function set_posts_per_page_for_journal_cpt( $query ) {
if ( !is_admin() && $query->is_main_query() && is_post_type_archive( 'journal' ) ) {
$query->set( 'posts_per_page', '-1' );
}
}
add_action( 'pre_get_posts', 'set_posts_per_page_for_journal_cpt' );
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.