如何在自定义发布类型中生成SELECT查询?

时间:2020-01-09 作者:Christian

我有一个在自定义Post类型(CPT)中生成的表

enter image description here

是否有可以修改查询的选项?例如,我在wp\\u posts表中有一个post\\u type=\'我的类型\'。我想对wp\\u posteta表进行连接,以获得特定的值-我如何才能做到这一点?在哪里编辑查询?

我只想列出在其meta中具有特定值的帖子,因为我需要进行连接,所有这些都是为了控制特定用户可以看到的内容

2 个回复
SO网友:Rendy de Puniet

您可以使用meta_query 属性获取post数据时使用new WP_Query()

$vehicles = new WP_Query([
    \'post_type\'  => \'vehicle\',
    \'meta_query\' => [
        \'relation\' => \'AND\',
        [
            \'key\'   => \'wheel\',
            \'value\' => \'4\',
        ],
        [
            \'key\'   => \'color\',
            \'value\' => \'blue\',
        ]
]);

WP_Query official docs

SO网友:Antti Koskinen

我认为使用pre_get_posts 行动应该奏效。沿着这条线的东西。根据需要进行修改。添加到functions.php.

function my_limit_admin_posts($query){
  if ( is_admin() && $query->is_main_query() && \'your_post_type\' === $query->get(\'post_type\') && current_user_can(\'some_capability_or_role\') ) {
    $query->set( \'meta_query\', array(
      array(
        \'key\'     => \'your_meta_key\',
        \'compare\' => \'!=\',
        \'value\'   => \'some_value\',
      )
    ) );
  }
}
add_action( \'pre_get_posts\', \'my_limit_admin_posts\' );
上一个问题(&A);A可能相关,Can I exclude a post by meta key using pre_get_posts function?

相关推荐

使用WP_QUERY无法进行WordPress分页

好的,我知道已经有很多关于这个的帖子了,但我无法找到我的代码有什么问题。因为分页仍不起作用。奇怪的是,相同的代码和模板在我使用它们的另一个站点上运行良好。<?php $type = get_sub_field(\'type\'); $amount = get_sub_field(\'amount\'); $previousLabel = $labels[\'previous_label\']; $nextLabel = $labels[