我的帖子中有一个(类别)关系自定义字段(ACF),名为im_featured_on_category_pages
-- 基本上,它允许管理员选择文章是否应该在所选类别页面上“特色化”。存储的值是一个序列化数组,如a:1:{i:0;s:3:"273";}
其中“273”将是“特色”类别ID。
在调用的函数中get_category_featured($catID)
在我的内部functions.php
文件,我有一个函数get_posts
查询:
$cat_featured_posts = get_posts([
\'numberposts\' => 3,
\'post_type\' => \'post\',
\'category\' => $catID,
\'meta_query\' => [
\'relation\' => \'AND\',
[
\'key\' => \'im_featured_on_category_pages\',
\'compare\' => \'EXISTS\'
],
[
\'key\' => \'im_featured_on_category_pages\',
\'value\' => \'\',
\'compare\' => \'!=\'
],
[
\'key\' => \'im_featured_on_category_pages\',
\'value\' => \'"\' . $catID . \'"\',
\'compare\' => \'LIKE\'
]
],
\'orderby\' => \'date\',
\'order\' => \'DESC\'
]);
此查询有效。。。它只得到3个类别内的帖子。。。但是meta\\u查询似乎被忽略了。它仍然返回所有帖子,无论ACF字段是否存在、是否为空或是否具有我要查找的正确值。
基本上,我希望返回的帖子是:
在提供的类别中($catID
)必须有一个名为im_featured_on_category_pages
im_featured_on_category_pages
不能为空im_featured_on_category_pages
必须包含(“LIKE”)$catID
返回的3个帖子必须按日期排序(最新的优先)在此点上的任何帮助都将不胜感激。。。我在这里呆了大约8个小时,不知道我做错了什么。UPDATE: 所以我尝试了几个不同的查询,无论我在meta_query
...似乎被忽视了。。。我甚至取出了meta\\u查询,没有它也得到了相同的结果。就像get_posts()
完全忽略我的meta\\u查询。这和我在functions.php
而不是在模板中?