簡體   English   中英

在 wordpress 主頁上顯示帶有特定標簽的帖子?

[英]Display posts with specific tags on wordpress homepage?

我試圖在我的 wordpress 主頁上只顯示帶有“44”或“9”標簽的帖子。

到目前為止,我在這里:

<?php get_header();?>

<div class="container pt-5 pb-5">

<h1><?php the_title();?></h1>

<?php

$query = new WP_Query( array( 'tag__in' => array( 44, 9 ) ) );

if ( $query->have_posts() ) :

while ( $query->have_posts() ) : $query->the_post();?>

    <?php the_content();?>

<?php endwhile; endif;?>

</div>

<?php get_footer();?>

但是看不到帖子。 我哪里錯了?

在您的查詢中,您已指定要查找帶有標簽 44 或 9 的帖子:

$query = new WP_Query( array( 'tag__in' => array( 44, 9 ) ) );

請注意,這不會獲取帶有這些標簽的所有帖子 - 此查詢中還有其他約束,此處未看到。 WP_Query有許多默認值,所以如果你沒有在你的 args 中設置它們,那么它會使用這些。 這些默認參數包括:

  • post_status = public (除非用戶已登錄 - 然后還包括private
  • post_type = post (不是說這是特定的帖子類型,不包括所有帖子,例如自定義帖子類型)

由於您的查詢沒有返回任何內容,並且根據您為顯示有帶有這些標簽的帖子所做的調試,我們知道這些默認值之一正在阻止查詢獲取您的帖子。

  1. 確認您要獲取的帖子已發布公開
  2. 如果您使用自定義帖子類型,則需要將其包含在您的 WP_Query 中。 例如,如果您的 CPT slug 是my_cpt ,您可以按如下方式包含它:
$args = array( post_type' => 'my_cpt', 
               array( 'tag__in' => array( 44, 9 ) ) );
$query = new WP_Query( $args);

您還可以使用'post_type' => array( 'post', 'my_cpt')一次性搜索多種帖子類型

僅供參考,如果您不確定您的帖子的 slug 是什么,請轉到 WP 管理中列出您嘗試獲取的所有帖子的頁面並查看 url - 它將包含這樣的帖子類型:

https://www.example.com/wp-admin/edit.php?post_type=my_cpt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM