使用JSON数据创建过滤后的帖子列表

时间:2016-08-25 作者:JoaMika

因此,我用JSON提要中的自定义字段创建了wordpress JSON提要。

现在,我如何在现有页面上显示这些内容,即使用a custom field value ="dog" 在现有页面内(如wp_query 我想是的)。

我找不到这方面的任何资源。

1 个回复
最合适的回答,由SO网友:Jesús Franco 整理而成

首先,必须允许从REST API查询自定义字段。让我们从以下示例开始1fix.io:

function my_allow_meta_query( $valid_vars ) {
    $valid_vars = array_merge( $valid_vars, array( \'meta_key\', \'meta_value\' ) );
    return $valid_vars;
}
add_filter( \'rest_query_vars\', \'my_allow_meta_query\' );
因此,asuming您的域名称为“favorite\\u animal”,在本例中,您可以使用如下过滤器url查询帖子:

http://example.com/wp-json/wp/v2/posts/?filter[meta_key]=favorite_animal&filter[meta_value]=dog

我真的建议阅读链接帖子,解释WordPress后端的示例代码,因为默认情况下,meta\\u密钥只允许经过身份验证的用户使用,如果您在元字段中有私有数据,这里给出的天真示例是一场安全噩梦。

使用REST端点返回的资源的一种简单方法是在一个小部件内显示一个帖子列表,例如,让我们假设<div id="display"></div>

(function($) {
    $(function() {
        var resourceUrl = \'http://example.com/wp-json/wp/v2/posts/?filter[meta_key]=favorite_animal&filter[meta_value]=dog\';
        $.get(resourceUrl,
            function(posts) {
                var output = \'\';
                $.each(posts, function(index, post) {
                    output += \'<p><a href="\' + post.link + \'">\' + post.title.rendered.trim() + \'</a></p>\';
                });
                $(\'#display\').html(output);
            }
        );
    });
})(jQuery);