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

标签 php mysql wordpress function

你好,我正在开发一个博客,我想根据 wp_usermeta 数据表中的值过滤我的帖子

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

例如:如果用户选择了 Toyota,我将该记录保存在 wp_usermeta 表中,如下所示

user_id(列名)=2

meta_key(列名)=品牌

meta_value(列名)=丰田

我所有的元值都是帖子类别,在上面的例子中“Toyota”是一个帖子类别。

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

但是我很难在 postmeta 和 usermeta 表之间建立联系。

最好的方法是什么,或者是否有更好的方法来完成我的任务?

谢谢。

最佳答案

你可以使用 pre_get_posts操作存档页面上的主要查询(或者任何你想要的地方,真的)。

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

the docs for WP_Query中有很好的例子你可以适应你的需要。从类似

的内容开始
'meta_query' => array(
    array(
            'key'     => 'brand',
            'value'   => 'Toyota',
            'compare' => '=',
    ),
),

在您的查询中。

关于php - 如何按用户选择的值过滤帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46725632/

相关文章:

javascript - 通过 ajax $.post 上传文件不起作用

php - PDO - 从事务中检索变量值?

wordpress - 复制粘贴时如何阻止 Wordpress.com 删除空格?

javascript - 获取 "jQuery("a.raf_link").fancybox 不是函数"错误?

php - 具有 Symfony 表单/实体字段名称 'from' 时出现问题

php - 在 Wordpress 中获取并显示当前用户的特定元数据项

php - Laravel SQL 查询不断提供 SQLSTATE[42000] : Syntax error or access violation: 1064

php - 如何在 laravel 5.1 队列中使用除默认值之外的其他 QUEUE_DRIVER?

php - 查询检查单词是否存在 php MySQL?例如 : games like scrabble

php - 如何在 php 中显示完整的月份日期和金额?