如何使用META_QUERY排除关系自定义域为空且不存在的帖子?

时间:2016-10-14 作者:kevindeleon

我的帖子中有一个(类别)关系自定义字段(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个帖子必须按日期排序(最新的优先)
    1. 在此点上的任何帮助都将不胜感激。。。我在这里呆了大约8个小时,不知道我做错了什么。

      UPDATE: 所以我尝试了几个不同的查询,无论我在meta_query...似乎被忽视了。。。我甚至取出了meta\\u查询,没有它也得到了相同的结果。就像get_posts() 完全忽略我的meta\\u查询。这和我在functions.php 而不是在模板中?

    1 个回复
    最合适的回答,由SO网友:kevindeleon 整理而成

    抱歉伙计们。。。我实际上是从其他人那里继承了这个安装。问题是一个插件(嘟嘟,https://wordpress.org/plugins-wp/brilliant-easy-exclude-posts/ )...这导致我的meta\\u查询根本不起作用。我将向插件人员提交一份报告。

    相关推荐

    如何在Functions.php中链接style.css

    我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();