Wordpress 如何在wp_查询中使用find_in_set

Wordpress 如何在wp_查询中使用find_in_set,wordpress,Wordpress,我有两个元键key1和key2,我正在寻找一个使用这两个键的查询 这是我的php查询 $where = "keyone = 1 or FIND_IN_SET($id, `keytwo` ) <>0"; $where=“keyone=1或在集合中查找($id,`keytwo`)0”; 它和mysql配合得很好,但我正在尝试将这个概念转换为wp_查询,但并没有得到任何结果 此代码也不起作用 提前感谢。我发布的链接只是为您注入自定义WHERE子句的一种方式,这可能是您唯一的选择

我有两个元键key1和key2,我正在寻找一个使用这两个键的查询 这是我的php查询

$where = "keyone = 1 or FIND_IN_SET($id,  `keytwo` ) <>0";  
$where=“keyone=1或在集合中查找($id,`keytwo`)0”;
它和mysql配合得很好,但我正在尝试将这个概念转换为wp_查询,但并没有得到任何结果

此代码也不起作用


提前感谢。

我发布的链接只是为您注入自定义
WHERE
子句的一种方式,这可能是您唯一的选择。如果您查看,您将看到比较运算符是硬编码的。由于WordPress从未真正期望存储
设置
值,因此也没有任何本机支持。我想试试这样的东西:

//Function to inject our custom WHERE clauses
function so_34594266_post_where( $where, &$wp_query )
{
    //Somehow this function needs to be made "aware" of the $id variable,
    //either a class-level variable, global (yuck) or some function call
    if( $wp_query->is_main_query() )
    {
        $where = "keyone = 1 or FIND_IN_SET($id,  `keytwo` ) <>0";
    }

    return $where;
}

//Tell WordPress to use our function
add_filter( 'post_where', 'so_34594266_post_where' );

//Get our posts (this could also be a WP_Query object or whatever else)
$posts = get_posts( '...your stuff here...' );

//Tell WordPress to stop using our function
remove_filter( 'post_where', 'so_34594266_post_where' );
//用于插入自定义WHERE子句的函数
函数so_34594266_post_where($where,&$wp_query)
{
//不知何故,这个函数需要“意识到”$id变量,
//要么是类级变量、全局变量(恶心),要么是函数调用
如果($wp\u query->is\u main\u query())
{
$where=“keyone=1或在集合中查找($id,`keytow2`)0”;
}
返回$where;
}
//告诉WordPress使用我们的函数
添加_过滤器('post_where','so_34594266_post_where');
//获取我们的帖子(也可以是WP_查询对象或其他任何对象)
$posts=get_posts(“…你的东西在这里…”);
//告诉WordPress停止使用我们的函数
移除过滤器(“post_where”、“so_34594266_post_where”);

请参阅关于使用自定义
查询,如
查询。基本上,您只需要过滤查询的
WHERE
子句并插入您自己的SQL字符串。这对我不起作用,我必须在元键中而不是在标题中查找。