我有一个CURL方法,用于通过GitBash调用第三方API:
curl -u "xxx@dxwxcxrp.com:hPhO4IXXXXXYM2zXXXXX" -X GET -H "Content-Type: application/json" "https://dxwxcxrp.atlassian.net/rest/api/3/search?jql=created>=startOfMonth()&key=DCHC01&startAt=1&maxResults=1&fields=id,key"
结果将是这样的:
{
"expand":"names,schema",
"startAt":1,
"maxResults":1,
"total":31,
"issues":[
{
"expand":"operations,versionedRepresentations,editmeta,changelog,renderedFields",
"id":"28648",
"self":"https://dxwxcxrp.atlassian.net/rest/api/3/issue/28648",
"key":"DCHC01-7059"
}
]
}
我们如何在Wordpress网站上显示此内容?我们需要为此创建一个插件吗?还是有其他易于实现的方法?
答案 0 :(得分:1)
取决于您要在哪里显示它,以及(有时)网站的构建方式。您可以使用shortcodes,它只需要在functions.php
中使用一个函数(并注册回调),或者可以构建一个小插件。如果您希望它在每次页面加载时都运行,并且您不担心API速率限制,则可能最容易实现短代码解决方案。
上面链接的示例的修改:
function startOfMonth()
{
return 1;
}
// [dcpartners_json]
function dcpartners_json($atts)
{
$ch = curl_init();
$startOfMonth = startOfMonth()
$auth = "xxx@dxwxcxrp.com:hPhO4IXXXXXYM2zXXXXX"
curl_setopt($ch, CURLOPT_URL, "https://dxwxcxrp.atlassian.net/rest/api/3/search?jql=created>=$startOfMonth&key=DCHC01&startAt=1&maxResults=1&fields=id,key")
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-type: application/json'])
curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close();
return $json;
}
add_shortcode('dcpartners_json', 'dcpartners_json');
那只会吐出一个JSON字符串,而不是HTML。
答案 1 :(得分:0)
WordPress已经为您提供了使用wp-api
进行此操作的机会。
我强烈建议您阅读有关项目here的更多有用的详细信息。
我确实相信,如果您尝试实现一个简单的get请求并想要处理wordpress,则应该以WP方式进行处理。以您想要的方式集成数据将更加简单。 (SQL表,插件,对自定义模板的原始调用。)
$args = array ('headers' => array(
'Authentication' => 'xxx@dxwxcxrp.com:hPhO4IXXXXXYM2zXXXXX' //YOU NEED TO ADAPT TO YOUR AUTHENTICATION (BASIC, AUTH2, etc)
'Content-Type' => 'application/json'
)
);
$rawData = wp_remote_get('https://dxwxcxrp.atlassian.net/rest/api/3/search?jql=created>=startOfMonth()&key=DCHC01&startAt=1&maxResults=1&fields=id,key', $args);
$data = json_decode( wp_remote_retrieve_body( $rawData ), true );
var_dump($data);
$startAt = $data['startAt'];
echo $startAt; //Should be 1