
在WordPress插件开发中,经常需要从外部API获取数据并在页面上展示。本文将针对从PancakeSwap API获取Token信息时,数据无法正常显示的问题提供解决方案。问题的核心在于如何正确地解析API返回的JSON数据,并将其有效地展示在WordPress页面上。
1. 理解问题:API响应与数据解析
首先,我们需要了解wp_remote_get()函数返回的数据结构。wp_remote_get()返回的是一个包含HTTP响应头和响应体的数组。我们需要使用wp_remote_retrieve_body()函数来提取响应体,这通常是一个JSON字符串。
问题的关键在于,直接将JSON字符串赋值给变量后,无法直接通过$datas-youjiankuohaophpcnname等方式访问数据,因为PHP默认将JSON字符串视为一个普通的字符串。我们需要使用json_decode()函数将JSON字符串转换为PHP对象或数组。
2. 解决方案:使用json_decode()解析JSON数据
在_get_wp_pancakeswap_datas()函数中,我们需要添加json_decode()函数来解析API返回的JSON数据。
function _get_wp_pancakeswap_datas () {
$args = array (
'timeout' => 120,
'httpversion' => '1.1'
);
$url = "https://api.pancakeswap.info/api/v2/tokens/0xdb72feadd4a0734d62fa5a078551986519dca19d";
$call = wp_remote_get($url, $args);
$response_body = wp_remote_retrieve_body($call);
$response = json_decode($response_body);
return $response->data;
}这段代码首先使用wp_remote_retrieve_body()获取响应体,然后使用json_decode()将其解码为PHP对象。json_decode()函数的默认行为是将JSON数据解码为PHP对象。最后,我们返回 $response->data,因为PancakeSwap API的数据位于data字段下。
3. 修改output_pancakeswap()函数
现在,_get_wp_pancakeswap_datas()函数返回的是一个PHP对象,我们可以直接使用$datas->name等方式访问数据。
function output_pancakeswap() {
$datas = _get_wp_pancakeswap_datas () ;
//Nom et prix du token
$output = 'Nom du token : '.$datas->name;
$output .= '<br>';
$output .= 'Valeur du token : '.$datas->price;
$output .= ' $';
$output .= '<br>';
$output .= 'Valeur du token en BNB : '.$datas->price_BNB;
return $output;
}4. 完整代码示例
以下是修改后的完整代码:
<?php
/*
Plugin name: WP PancakeSwap
Description: Ce plugin nous permet de dialoguer avec l' api PancakeSwap
Author: Jean Philippe Faucon
Version : 1.0
*/
// Utilisation de l'API Pancakeswap.
// https://github.com/pancakeswap/pancake-info-api/blob/develop/v2-documentation.md
// Source : https://api.pancakeswap.info/api/v2/tokens/0xdb72feadd4a0734d62fa5a078551986519dca19d
// 1 étape : récupérer les infos auprès de PancakeSwap
function _get_wp_pancakeswap_datas () {
$args = array (
'timeout' => 120,
'httpversion' => '1.1'
);
$url = "https://api.pancakeswap.info/api/v2/tokens/0xdb72feadd4a0734d62fa5a078551986519dca19d";
$call = wp_remote_get($url, $args);
$response_body = wp_remote_retrieve_body($call);
$response = json_decode($response_body);
return $response->data;
}
// 2 étape : mettre en forme les données
add_shortcode('pancakeswap','output_pancakeswap');
function output_pancakeswap() {
$datas = _get_wp_pancakeswap_datas () ;
//Nom et prix du token
$output = 'Nom du token : '.$datas->name;
$output .= '<br>';
$output .= 'Valeur du token : '.$datas->price;
$output .= ' $';
$output .= '<br>';
$output .= 'Valeur du token en BNB : '.$datas->price_BNB;
return $output;
}5. 注意事项和总结
通过以上步骤,你应该能够成功地从PancakeSwap API获取Token信息,并将其正确地显示在WordPress页面上。核心在于理解json_decode()函数的作用,并正确地使用它来解析JSON数据。记住,良好的错误处理和数据安全措施是插件开发的重要组成部分。
以上就是WordPress插件开发:解决PancakeSwap API数据无法显示的问题的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号