如何按用户选择的值过滤帖子?

时间:2017-10-13 08:26:42

标签: php mysql wordpress function

您好我正在博客上工作我想根据wp_usermeta数据表中的值过滤我的帖子。

当用户注册我的网站时,我希望用户选择他/她最喜欢的汽车制造商。然后我将该值保存在wp_usermeta表中。

EX:如果用户选择丰田,我将该记录保存在wp_usermeta表中,如下所示

user_id(列名)= 2

meta_key(列名)=品牌

meta_value(列名)=丰田

我的所有meta_values都是帖子类别,在上面的情况下"丰田"是一个帖子类别。

现在我需要根据wp_usermeta表中用户选择的meta_value过滤我的博客帖子。

但是我努力在postmeta和usermeta表之间建立联系。

最好的方法是什么?还是有更好的方法来完成我的任务?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用pre_get_posts来操作存档页面上的主查询(或者您真正想要的位置)。

我不相信在单个查询中有一种方法可以做到这一点,所以我只是从usermeta获取最喜欢的值并将它们放入meta_query

the docs for WP_Query中有很好的例子可以满足您的需求。从

之类开始
'meta_query' => array(
    array(
            'key'     => 'brand',
            'value'   => 'Toyota',
            'compare' => '=',
    ),
),

在您的查询中。