如何调试新的短代码?以及如何将短码中的字符串转换为代码?

时间:2017-07-07 作者:Stereo View

我正在尝试编写一个简单的插件,从API端点获取一些数据。我计划从一个短代码中读取api密钥,但还没到那个程度。

我编写了以下代码。我的问题是,我如何触发代码,以便调试它以查看发生了什么?

如果这是一个简单的问题,那么接下来的问题是如何从短代码中读取api密钥?

class DATA_PARSING
{

private static $instance;

/**
 * Initializes the plugin and read some data
 *
 * @access private
 */
private function __construct()
{
    add_action(\'data\', [$this, \'fetchData\']);
}

/**
 * Creates an instance of this class
 *
 * @access public
 * @return DATA_PARSING    An instance of this class
 */
public function get_instance()
{
    if (null == self::$instance) {
        self::$instance = new self;
    }

    return self::$instance;
}

private function fetchData($apiKey)
{
    $url = \'https://api.website.com/data\';
    $args = [
        \'id\' => 1234,
        \'fields\' => \'*\'
    ];
    $method = \'GET\';
    $headers = array(
        \'Authorization\' => \'Bearer \' . $apiKey,
        \'Accept\' => \'application/vnd.website.v1+json\',
        \'content-type\' => \'application/json\',
    );
    $request = array(
        \'headers\' => $headers,
        \'method\' => $method,
    );

    if ($method == \'GET\' && !empty($args) && is_array($args)) {
        $url = add_query_arg($args, $url);
    } else {
        $request[\'body\'] = json_encode($args);
    }

    $response = wp_remote_request($url, $request);

    try {
        $json = json_decode($response[\'body\']);
    } catch (Exception $e) {
        $json = null;
    }

    return $json;

}
}

2 个回复
SO网友:rudtek

您可以通过将此代码放入模板中来调用该函数。

echo fetchData(\'YOUR_API_HERE\');
您应将第一行更改为:

如果您希望将其转换为短代码,请添加以下行:

add_shortcode( \'fetch-short\', \'fetchData\'); 
在函数的正上方或正下方。

然后将功能开始更改为:

function fetchData( $atts ) {
    $api = $atts[\'api\'];  //this is your new api variable
你的短代码是

[fetch-short api="YOUR_API"]
但要小心添加检查,以防有人没有添加api。在设置默认值或错误检查时,如果$api为空。

SO网友:mozboz

要运行此代码进行测试,可以使用wp-cli 使用eval file命令创建工具。wp-cli eval-file 加载整个Wordpress基础架构,然后运行您的PHP文件,这样您就可以使用Wordpress调用,如wp_remote_request 无需将此代码放入页面或pulgin中。E、 编写一个名为test的文件。php实例化类并调用方法,然后使用以下命令运行该类:

wp-cli eval-file test.php
我看到@rudtek已经回答了如何从短代码中获取数据到代码中。

结束

相关推荐