该代码有几个问题
选择错误的术语首先,在$terms
变量类别的分类名称为category
. 这条线应该是这样的。
$categories = get_the_terms( get_the_ID(), \'category\');
为了便于表达,我更改了
$terms
变量至
$categories
.
您使用的类别查询参数错误category__not_in
, 告诉查询NOT 搜索具有这些职业的帖子。这不仅仅是从crops
, 它会返回所有没有当前类别的帖子。
为了告诉查询您想要某个类别或一组类别中的帖子,您应该使用category__in
您可以查看有关WP_Query
here
中的category\\uu的值错误category__in
查询的参数将字符串或类别ID(字符串)数组作为值。存储在中的项目$categories
数组是的实例WP_Term
.
为了传递正确的值,应该从WP_Term
. 我们可以得到WP_Term
通过访问term_id
所有物
\'category__in\' => array_map(function($cat){ return $cat->term_id; }, $categories)
array_map
对数组中的每个项应用回调函数后,返回数组中的每个项。在本例中,我们将从
$categories
大堆
最终结果是您的查询应该是这样的
$categories = get_the_terms( get_the_ID(), \'category\');
$args = array (
\'category__in\' => array_map(function($cat){ return $cat->term_id; }, $categories),
\'post__not_in\' => array(get_the_ID()),
\'posts_per_page\' => \'10\',
\'ignore_sticky_posts\' => 1,
\'meta_key\' => \'_thumbnail_id\',
);
$query = new WP_Query($args);