我在短码atts中遇到post\\uu问题。它没有显示任何内容。我想问题是post__in must be an array but the shortcode ID returns string.
function courses_shortcode($atts) {
extract(shortcode_atts( array(
\'limit\' => 16,
\'id\' => array(592, 862, 418, 491, 1227, 1015, 847, 738, 541, 1186, 664, 695, 785),
), $atts ));
$q_courses = new WP_Query( array(
\'post_type\' => array(\'course\'),
\'posts_per_page\' => $limit,
\'post__in\' => $id,
\'orderby\' => \'post__in\',
));
add_shortcode(\'video-course\', \'courses_shortcode\');
问题是如果我这样做[视频课程限制=8 id=“4181186”]不会显示任何内容。限制正在运行,但
ID is not.
最合适的回答,由SO网友:Tammy Shipps 整理而成
对的post\\u in需要一个数组,但[视频课程限制=8 id=“4181186”]中的id参数是作为字符串传入的,因此在您的快捷码中,您必须将其解析为数组才能使用它:
if ( !is_array($id) ) {
// If $id is not an array (not your default value in your example)
// then simultaneously parse it into an array and trim white space:
$id = array_map(\'trim\', explode(\',\', $id));
}
然后您可以使用:
\'post__in\' => $id