听起来您需要一个自定义查询才能提取X数量的图像。您可以执行以下操作(未经测试):
<?php
function custom_gallery_display( $number_of_images = 4 ) {
//make sure you have access to the WPDB object
global $wpdb;
//pull 4 random attachments
$images = $wpdb->get_results("SELECT ID from wp_posts WHERE post_type = \'attachment\' ORDER BY RAND() LIMIT $number_of_images");
//may need to tweak this;
//not sure what format the results are returned
$image_ids = implode( \',\', $images );
//now print with random images
echo do_shortcode(\'[gallery include="\' . $image_ids . \'" columns="1" link="file"]\');
return;
}
?>
这应该可以做到,尽管它可能需要一些调整。
您还应该查看文档http://codex.wordpress.org/Gallery_Shortcode
根据它,您可以通过将orderby属性设置为RAND来轻松创建随机顺序
<?php echo do_shortcode(\'[gallery include="317,309,325" columns="1" orderby="RAND" link="file"]\'); ?>
但是,如果为了使用X数量的图像而不得不使用自定义查询,那么您也可以在该点将其随机化,就像我在上面的查询中所做的那样。