如何在WordPress站点调用API判断JSON指定数据是否存在并返回布尔值
WordPress调用Covalent API判断指定资产持有状态实现方案
方案1:零代码基础插件实现(推荐新手使用)
- 第一步:登录WordPress后台,在「插件-安装插件」中搜索
WP Code,安装并启用该官方代码管理插件 - 第二步:进入WP Code管理页面,点击「添加片段」,选择「创建自定义片段」
- 第三步:将下方代码粘贴到代码编辑框,代码类型选择「PHP代码片段」,点击保存并启用
<?php // 自定义短代码:检查指定地址是否持有符合条件的PSK资产 add_shortcode('check_psk_balance', function() { // 替换为你自己的Covalent API密钥 $api_key = 'ckey_docs'; $api_url = 'https://api.covalenthq.com/v1/137/address/0x3FEb1D627c96cD918f2E554A803210DA09084462/balances_v2/?&format=JSON&nft=true&no-nft-fetch=true&key=' . $api_key; // 加缓存避免重复请求API,默认缓存10分钟(600秒),可自行调整 $cache_key = 'psk_balance_check_' . md5($api_url); $cached_result = get_transient($cache_key); if ($cached_result !== false) { return $cached_result ? 'true' : 'false'; } // 发起API请求 $response = wp_remote_get($api_url, array('timeout' => 10)); if (is_wp_error($response)) { return 'false'; } // 解析返回的JSON数据 $data = json_decode(wp_remote_retrieve_body($response), true); $has_valid_psk = false; // 遍历资产条目匹配条件 if (!empty($data['data']['items'])) { foreach ($data['data']['items'] as $item) { if ($item['contract_ticker_symbol'] == 'PSK' && intval($item['balance']) > 0) { $has_valid_psk = true; break; } } } // 写入缓存 set_transient($cache_key, $has_valid_psk, 600); // 如需显示自定义内容,可把下方的'true'/'false'替换为对应文字 return $has_valid_psk ? 'true' : 'false'; }); ?>
- 第四步:在任意文章、页面、小工具中插入短代码
[check_psk_balance],访问时就会自动输出true或false
方案2:无插件实现(适合可修改主题文件的用户)
- 把上述PHP代码复制粘贴到当前使用主题的
functions.php文件末尾,保存即可,短代码使用方法和方案1一致 - 注意:建议使用子主题修改functions.php,避免主题更新后代码被覆盖
注意事项
- 代码中的
ckey_docs是示例密钥,必须替换为你自己在Covalent平台申请的正式API密钥,否则请求会被限制 - 如需判断其他币种,只要修改代码里的
PSK为对应ticker符号即可 - 缓存时间可根据需求调整,修改代码中
set_transient的第三个参数(单位为秒)即可
内容的提问来源于stack exchange,提问作者Renos
相关产品推荐
相关产品推荐

