explode
将是您的最佳选择。WordPress有几个内置函数来处理函数参数数组(wp_parse_args
和shortcode_atts
例如),但与拆分字符串和迭代结果无关。我并不完全清楚您想要实现什么,但假设您试图为每个用户获取视频,那么您可以这样做:
function video_vote($atts) {
extract(shortcode_atts(array(
\'users\' => null
), $atts));
$user_ids = explode(",", strval($users));
$videos = array();
foreach ($user_ids as $id) {
$videos[] = get_video_vote_by_uid($id); // Assuming you have a function like this
}
return implode("\\n\\n", $videos);
}
此外,根据您的需要,您可以简单地将逗号分隔的用户id字符串发送给另一个函数。例如,许多内置WordPress函数
wp_parse_args
将接受它作为users关键字的参数(如果可用)。在这种情况下,您只需让接收函数处理拆分/迭代即可。
当然,如果你写了一个函数get_video_vote_by_uid
例如,在我的示例中提到,您可以为其编写一个包装器get_video_vote_for_users
它将获取一个用户列表(最好是由wp_parse_args
) 然后依次迭代用户并调用get_video_vote_for_users
并返回结果。一般来说,我觉得最好让您的短代码处理程序尽可能简单,如果不仅仅是因为有一天您可能需要在短代码之外使用相同的代码。