使用wp_Remote_Get在插件中获取wp帖子时出现问题

时间:2020-08-26 作者:Rogier Verkroost

我正在创建一个插件,向外部程序发送帖子。但我在得到这些帖子时遇到了一个问题。

我创建了下面的代码来获取帖子并回复它们。但如果我运行它,它将转到空的错误消息。当我回应时。它只获取“数组”

如果我只是发布http://localhost/wordpress/wp-json/wp/v2/posts 在浏览器中,我的帖子会得到一个JSON

我做错了什么?

$remoteargs = array(
        \'timeout\'     => 20,
        \'redirection\' => 5,
        \'httpversion\' => \'1.1\',
        \'blocking\'    => false,
        \'headers\'     => array(),
        \'cookies\'     => array(),
        \'sslverify\'   => false,
    ); 

$response = wp_remote_get( \'http://localhost/wordpress/wp-json/wp/v2/posts\', $remoteargs );
// Exit if error.
if ( is_wp_error( $response ) ) {
        echo $response->get_error_message();
            return;
    }
// Get the body.
$posts = json_decode( wp_remote_retrieve_body( $response ) );
// Exit if nothing is returned.
if ( empty( $posts ) ) {
        echo \'emptyerror\';
        return;
    }
foreach ( $posts as $post ) {
        echo $post;
}**

2 个回复
SO网友:Rogier Verkroost

我对代码做了一些更改

        $remoteargs = array(
            \'timeout\' => 20,
            \'redirection\' => 5,
            \'httpversion\' => \'1.1\',
            \'blocking\' => false,
            \'headers\' => array(),
            \'cookies\' => array(),
            \'body\' => array(),
            \'sslverify\' => false,
        );

        $response = wp_remote_get( \'http://localhost/wordpress/wp-json/wp/v2/posts\',$remoteargs);

        // Exit if error.
        if ( is_wp_error( $response ) ) {
            echo $response->get_error_message();
            return;
        }

        // Get the body.
        $posts = json_decode( wp_remote_retrieve_body( $response ) );

        // Exit if nothing is returned.
        if ( empty( $posts ) ) {
            var_dump($response);
            return;
        }
它为我提供了这样一个空数组

数组(5){[“headers”]=&燃气轮机;数组(0){}[“正文”]=&燃气轮机;字符串(0)“”"E;[“响应”]=&燃气轮机;数组(2){[“代码”]=&燃气轮机;bool(false)[“消息”]=&燃气轮机;bool(false)}[“cookies”]=&燃气轮机;数组(0){}[“http\\U响应”]=&燃气轮机;空}

如果我尝试http://localhost/wordpress/wp-json/wp/v2/posts在邮递员的浏览器中,我可以获得帖子。那么,我的代码中缺少了什么?

SO网友:user206013

删除或更改

 \'blocking\' => false,
为true,因为您没有进行任何Ajax调用

相关推荐