所以我使用自定义循环和快捷码将其插入任何页面。像这样:
function register_custom_shortcode($atts){
extract(shortcode_atts(array(
\'ids\' => \'\', // this is what I need
), $atts));
$cutom_loop = new WP_Query( array(
\'post_type\' => \'cutom_post\',
\'orderby\' => \'menu_order\',
\'order\' => \'ASC\'
) );
ob_start();
while ( $cutom_loop->have_posts() ) : $cutom_loop->the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(\'\'); ?>>
// post thumb, title and so on
</article>
<?php endwhile;
wp_reset_postdata();
$content = ob_get_contents();
ob_end_clean();
return $content;
}
add_shortcode( \'custom_loop\', \'register_custom_shortcode\' );
我应该如何处理此ID以具有以下短代码:
[custom_loop ids="112,93,34,91"]
?
EDIT:
好吧,如果我加上
\'post__in\' => array(189,173)
对于新的WP\\u查询,它将只输出这两篇文章,但仍然无法找出如何从短代码中获取此ID。
最合适的回答,由SO网友:Nicklas 整理而成
如果在短代码中使用逗号分隔的id,如"112,93,34,91"
, 您可以使用explode 函数从字符串中生成一个数组,如下所示:
extract(shortcode_atts(array(
\'ids\' => \'\'
), $atts));
$id_array = explode(\',\', $ids);
那么你只需要使用
\'post__in\' => $id_array