External API to WP

时间:2017-05-12 作者:PenDragon

我有自己的元数据api(在wp外部),我想通过api读取一些数据,并将其显示在我的wp站点上。

我一直在使用HTTP wp API的wp\\u remote\\u get方法。但我有两个问题。

我应该将该请求放在函数中的哪个部分。php?也许制作一个插件(似乎有点难)?,或者使用插件在特定页面上发布PHP?

另一个问题:当我使用wp\\u remote\\u retrieve\\u body时,它返回一个带有JSON body的字符串,我如何以一种好的方式打印它,而不是像一个丑陋的字符串?

提前谢谢。

1 个回复
SO网友:Nathan Johnson

我建议编写一个简单的插件。通读Plugin Development Handbook, 但这很容易。插件唯一需要的是带有插件名称的标题。

在插件中,创建一个函数,用于获取API请求的结果并将其存储在WordPress瞬态中。

<?php
/**
 * Plugin Name: WordPress StackExchange Question 266688
 */

namespace StackExchange\\WordPress;
//* If you are running a version of PHP less than 5.3, namespaces are not available
//* Instead, you can pseudo-namespace the function

//* Simple function to use the transients API to cache the result of the external API request
function get() {
  $transient = \\get_transient( \'name_of_transient\' );
  if( ! empty( $transient ) ) {
    return $transient;
  }
  $output = \\wp_remote_get( \'https://api.example.com/v2/my-api/\' );
  \\set_transient( \'name_of_transient\', json_decode( $output ), DAY_IN_SECONDS );
  return $out;      
}
要使用该功能,请执行以下操作:

//* This will be an object
$api = \\Stackexchange\\WordPress\\get();
echo $api->example_property;

结束