在侧边栏中显示图库中的X个图像

时间:2011-08-08 作者:Andrew

我花了一天时间寻找这个答案,我想我应该求助于StackExchange,希望有人能找到答案。

我的目标是在这个模板的侧栏中显示X个图像(例如,4个),但我希望它是动态的,或者随机拉4个图像,或者库中的第一个或最后4个图像。

我目前正在使用下面的代码手动拉取4幅图像,但有人能提供代码让我更聪明一点吗?

<?php echo do_shortcode(\'[gallery include="317,309,325" columns="1" link="file"]\'); ?>

1 个回复
最合适的回答,由SO网友:Chris 整理而成

听起来您需要一个自定义查询才能提取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数量的图像而不得不使用自定义查询,那么您也可以在该点将其随机化,就像我在上面的查询中所做的那样。

结束

相关推荐

List all sidebars in metabox

我正在尝试添加一个元框来选择每页的侧边栏。为了创建我使用的元数据库this class施工相当简单:$meta_boxes[] = array( \'id\' => \'sidebars_side\', \'title\' => \'Page Sidebar\', \'pages\' => array(\'page\', \'post\'), \'context\' => \'side\', \'pri