使用自定义查询按元数据过滤帖子

时间:2018-10-17 作者:Kendell Daniel

我想用两件事来过滤这篇文章。

由当前登录用户执行通过文章中的元数据(disc\\u id)注意:“disc\\u id”的值是发布它的自定义帖子类型中帖子id的副本。立柱将使用重力模板在前端创建。因此,我们假设表单附加到一个post ID为7020的页面。发布帖子时,“disc\\u id”的元值为7020。我想做的是过滤所有具有该特定值的帖子。

我已经成功地完成了第一部分的工作,它显示了当前用户的帖子,但没有完成第二部分,即基于元数据的帖子。请查看下面的代码,有人能告诉我可能的解决方法吗?我将不胜感激。非常感谢。

 function fl_builder_loop_query_args_filter( $query_args ) {

    if ( \'dis_board\' == $query_args[\'settings\']->id ) {

    $query_args[\'post_type\'] = array( \'discussion_board\');

    $query_args[\'author\'] = get_current_user_id();

    }

    return $query_args;

    }

    add_filter( \'fl_builder_loop_query_args\', \'fl_builder_loop_query_args_filter\' );

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

我假设fl_builder_loop_query_args hook来自Beaver Builder,这意味着$query_argsargs 传递给WP_Query. source

那样的话你可以推一些custom field parameters$query_args 获取所有具有匹配元值的帖子。

我想应该是这样的,

function fl_builder_loop_query_args_filter( $query_args ) {
    if ( \'dis_board\' == $query_args[\'settings\']->id ) {
        $query_args[\'post_type\'] = array( \'discussion_board\');
        $query_args[\'author\'] = get_current_user_id();

        $query_args[\'meta_key\'] = \'disc_id\'; // the assigned meta key
        $query_args[\'meta_value_num\'] = 7020; // value we\'re looking for
    }
    return $query_args;
}
add_filter( \'fl_builder_loop_query_args\', \'fl_builder_loop_query_args_filter\' );
可以测试一下这个,看看它是否能按你想要的方式工作吗?

结束