WordPress插件快捷码不输出任何内容

时间:2015-09-27 作者:Th3No0b

我正在创建一个WordPress插件,从Minecraft服务器检索信息。我有一个脚本可以很好地完成这项工作,就像一个PHP脚本一样,但是,当我尝试将该脚本转换为插件时,它不会工作。

我最初使用cURL函数,但在google了一段时间后,我了解到这在WP中是不允许的,所以我将cURL函数改为wp_remote_get.

问题是,我创建的短代码不会输出任何内容。我真的不知道问题出在哪里,所以我决定在谷歌搜索了几天后在这里发布。

以下是插件内容:https://gist.github.com/th3no0b/1fa9aba11789160d9e48

(据我所知,文件目录是正确的,mcq-core.php, mcq-functions.phpmcq-shortcodes.php 文件位于core 文件夹)

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

wp_remote_get 不返回字符串,它返回一个数组,如果我们参考文档:

$response = wp_remote_get( \'http://www.example.com/index.html\' );
if( is_array($response) ) {
  $header = $response[\'headers\']; // array of http header lines
  $body = $response[\'body\']; // use the content
}
这里$response不是一个json字符串,而是一个包含头和主体的数组,主体包含一个json字符串。

因此:

function mcq_getMcApi($type){
    // This function mcq_gets the information from "mcapi.ca" if required
    $json = wp_remote_get("https://mcapi.ca/query/$ip/$type");
    return json_decode($json,true);
}
成为:

function mcq_getMcApi($type){
    // This function mcq_gets the information from "mcapi.ca" if required
    $response = wp_remote_get("https://mcapi.ca/query/$ip/$type");
    return json_decode($response[\'body\'],true);
}
请注意wp_remote_get 将返回WP_Error 对象,您应该检查它。任何一个这样的操作都失败了,您应该检查响应,因为它可能不是json字符串。

相关推荐

如果POST太长,WP REST API返回空白响应

我正在开发一个iOS应用程序,它需要使用WP Rest API来获取帖子。一切都很顺利,我使用此端点按ID获取帖子:https://example.com/wp-json/wp/v2/posts/12345 大多数情况下,API都会按预期返回帖子,但如果文章长度超过1300字左右,则会返回空响应。我所说的空是指页面将完全为空,甚至没有404状态码或空数组[]。它确实返回代码200,这意味着一切看起来都很好,但响应为空。从我的疑难解答来看,空白回复的原因似乎是因为帖子的字数太多。我有没有办法更新W