不清楚您在JS中使用的是什么自动完成函数,如果它来自库或自定义,但我假设它需要一个数组locations
是传递的,而不是一个字符串,这是您正在输入的内容。
您应该使用的函数是get_terms()
, 不wp_list_categories()
, 前者用于返回分类法中的术语数组,后者用于返回HTML标记字符串。您可以使用fields
参数筛选结果中要包含的字段。
示例:
$locations = get_terms( array(
\'taxonomy\' => \'category\',
\'hide_empty\' => false,
\'fields\' => \'names\'
) );
其次,如上所述locations
变量是用JS中的字符串而不是数组填充的。如果autocomplete函数自动将其解析为JSON,这可能很好,但在这种情况下,您的字符串无论如何都不是有效的JSON,因为您正在输出<ul>
括号内的标记字符串。尝试以下操作:
var locations = ["<?php echo implode(\'", "\', $locations); ?>"];