WordPress中wpDataTables嵌套JSON钩子配置:如何显示深层子数组数据
wpDataTables解析嵌套JSON获取深层字段问题
我在WordPress网站上安装了wpDataTables插件,已成功将表格与嵌套JSON链接关联,当前可获取home id字段,但需要进一步获取子数组中的homeClub-Name字段(相关截图:

)。
根据wpDataTables官方文档,解析嵌套JSON深层数据可使用两个钩子:
wpdatatables_get_one_level_deep_json_data_from_array_as_string:用于开启深层解析wpdatatables_set_one_level_deep_json_data_separator:用于设置数组值分隔符
我已将以下自定义代码添加到主题的functions.php文件中,但不知道如何让深层数据在表格中显示,也不清楚该如何正确调用钩子动作:
/** * Change array elements separator * @param $arrayValuesSeparator * @param $jsonURL * @param $tableID * @return bool|mixed */ function changeArraySeparator($arrayValuesSeparator, $jsonURL, $tableID){ //use only for tables that have specific json url if($jsonURL == 'https://clubapi.prosoccerdata.com/games/team/15'){ return '{ '; } return $arrayValuesSeparator; } add_action('wpdatatables_set_one_level_deep_json_data_separator', 'changeArraySeparator',10,7);
官方钩子示例说明
1. 开启深层解析的钩子示例
/** * Parse one level deep in nested JSON structure * @param $deepParse * @param $jsonURL * @param $tableID * @return bool|mixed */ function parseNestedJSON($deepParse, $jsonURL, $tableID){ //use only for tables that have specific json url if($jsonURL == 'https://swapi.dev/api/people'){ return true; } return $deepParse; } add_action('wpdatatables_get_one_level_deep_json_data_from_array_as_string', 'parseNestedJSON',10,3);
使用此钩子后,数组值默认以<br>标签分隔,若需自定义分隔符可使用第二个钩子。
2. 设置分隔符的钩子示例
/** * Change array elements separator * @param $arrayValuesSeparator * @param $jsonURL * @param $tableID * @return bool|mixed */ function changeArraySeparator($arrayValuesSeparator, $jsonURL, $tableID){ //use only for tables that have specific json url if($jsonURL == 'https://swapi.dev/api/people'){ return ', '; } return $arrayValuesSeparator; } add_action('wpdatatables_set_one_level_deep_json_data_separator', 'changeArraySeparator',10,3);
内容的提问来源于stack exchange,提问作者David Brugmans
相关产品推荐
相关产品推荐

