php - 在 wordpress 主页上显示带有特定标签的帖子?
问题描述
我试图在我的 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
有许多默认值,所以如果你没有在你的参数中设置它们,那么它将使用这些。这些默认参数包括:
post_status
=public
(除非用户已登录 - thenprivate
也包括在内)post_type
=post
(不是说这是特定的帖子类型,不包括所有帖子,例如自定义帖子类型)
由于您的查询没有返回任何内容,并且根据您为显示存在带有这些标签的帖子所做的调试,我们知道这些默认值之一会阻止查询获取您的帖子。
- 确认您要获取的帖子已发布并公开
- 如果您使用的是自定义帖子类型,则需要将其包含到您的 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
推荐阅读
- ios - 无法使 SFSafariViewController 状态栏样式 lightContent
- java - 为什么我得到预期的 begin_array 但是 String
- java - 单击按钮时如何调用方法
- javascript - 动态加载的 Vue 组件给我 404
- ionic-framework - ionic 3在拖放后计算项目
- python-3.x - 如何在 python 字典上实现 RSA 加密/解密?
- linkedin - LinkedIn Share Post V2 API 内部服务器错误
- android - 如何使用 Robolectric 触发发布到 ScheduledExecutorService 的延迟任务
- python-xarray - xarray - 如何重命名 DataArray 对象的维度
- c# - 映射目标类具有更多属性时,Automapper 失败