Shortcode应该返回字符串,以便附加到内容中。无法返回数组,因为它无法正确打印。
因此,如果您的短代码应该返回一个数组,那么您必须弄清楚这些数据应该如何格式化。
一种方法是使用逗号分隔值:
return implode( \', \', $value );
另一种方法是将其格式化为列表(ul/ol):
$result = \'<ul>\';
foreach ( $values as $item ) {
$result .= \'<li>\' . esc_html( $item ) . \'</li>\';
}
$result .= \'</ul>\';
return $result;
代码最大的问题是在foreach循环中使用return。如果函数返回任何内容,那么它将停止工作并退出。因此,如果您这样做:
foreach( $value AS $field ) {
return $field;
}
然后,您确切地说应该遍历数组,并且在第一次迭代中应该返回值(因此函数应该在它之后停止工作)。所以是-此循环将只返回数组的第一项。