如何从媒体集中的图像子集中获取随机图像?

时间:2015-12-19 作者:bassfan

如果自定义帖子没有特色图片,我想从媒体库中获取一个图片来代替特色图片。这些特定的图片不会附加到任何特定的帖子上,只会在没有特色图片的帖子中替代特色图片。我不想从媒体库中获取任何图像,只想获取我以某种方式标记的图像。

我现在可以处理一组硬编码的图像(我只是通过ftp将其上传到uploads目录)。但是,我希望能够将图像添加到媒体库中,并以某种方式“标记”它们以用作默认图像。既然上传的图像似乎没有类别/标签/分类法,那么获得此功能的最佳解决方案是什么?

我唯一能想到的就是创建一个页面,并将我所有的“默认图像”上传到该页面。然后只需查询附加到该页面的所有图像,并使用随机图像。必须有一种更好的方法来对图像进行分类,而不是创建一个无用的页面。

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

您可以将分类法用于媒体库,只需添加内置分类法,或register a new one.

例如,将内置的post tag分类添加到附件:

function wpd_attachment_taxonomy() {
    register_taxonomy_for_object_type( \'post_tag\', \'attachment\' );
}
add_action( \'init\', \'wpd_attachment_taxonomy\' );
然后,您可以查询具有特定标记的图像:

$args = array(
    \'post_type\' => \'attachment\',
    \'post_status\' => \'inherit\',
    \'tag\' => \'tagged\',
    \'posts_per_page\' => 1,
    \'fields\' => \'ids\',
    \'orderby\' => \'rand\'
);

$image = new WP_Query( $args );

if( $image->have_posts() ){
    $image_attributes = wp_get_attachment_image_src( $image->posts[0], \'full\' );
    echo $image_attributes[0];
}
更改tagged 无论你选择的标签是什么。这将获得一个随机图像和标签的附件ID。然后,我们可以使用该ID获取附件图像属性。

相关推荐

Remove <p></p> after images

我对<p></p> 出现在my之后的标记<img....>. 以下是我在本地主机上查看生成的页面时显示的内容。。。<img src=\"/wp-content/themes/wunderful/assets/images/feedback-danielle.png\" alt=\"Danielle Johnson Deal Town FC Treasurer\"> <p></p> 请注意随机生成的<p>&