背景:
我正在使用一个叫做skt全宽的wordpress主题。我正在修改他们的首页幻灯片,以便它显示六个随机图像,而不是六个预先选择的图像。我在媒体中有一个自定义字段,可以选择在头版彩票中可以选择哪些图像。然后有一个查询来选择这些图像。
他们用来显示图像的代码需要设置某些图像属性才能工作。它们是,图像url、图像标题、图像描述和图像href。
问题:
一旦媒体/附件进入查询,我如何从中获取所需的信息?我是否需要使用它们的插入代码,或者它们是实现我想要的更好的方法?
显示图像的代码:
echo \'{image : \\\'\'.$imgUrl.\'\\\', title : \\\'<div class="slide-title"><span>\'.( ($imgHref!=\'\' && $imgTitle!=\'\') ? \'<a href="\'.$imgHref.\'">\' : \'\').$imgTitle.( ($imgHref!=\'\' && $imgTitle!=\'\') ? \'</a>\' : \'\').\'</span></div><div class="slide-description"><span>\'.$imgDesc.\'</span></div>\'.( ($imgHref != \'\') ? \'<div class="slide-description"><span><a href="\'.$imgHref.\'">Read More ›</a></span></div>\' : \'\').\'\\\', thumb : \\\'\'.$imgUrl.\'\\\', url : \\\'\\\'},\'."\\n";
我的代码:
$args = array(
\'post_type\' => \'attachment\',
\'meta_key\' => \'on_front_page\',
\'meta_value\' => \'1\',
\'orderby\' => \'rand\',
\'posts_per_page\' => 6 ,
\'max_num_pages\' => 1,
);
$slides = new WP_Query($args);
$total_images = (int) $slides->found_posts;
while( $slides->have_posts() ) {
echo \'{image : \\\'\'.$imgUrl.\'\\\', title : \\\'<div class="slide-title"><span>\'.( ($imgHref!=\'\' && $imgTitle!=\'\') ? \'<a href="\'.$imgHref.\'">\' : \'\').$imgTitle.( ($imgHref!=\'\' && $imgTitle!=\'\') ? \'</a>\' : \'\').\'</span></div><div class="slide-description"><span>\'.$imgDesc.\'</span></div>\'.( ($imgHref != \'\') ? \'<div class="slide-description"><span><a href="\'.$imgHref.\'">Read More ›</a></span></div>\' : \'\').\'\\\', thumb : \\\'\'.$imgUrl.\'\\\', url : \\\'\\\'},\'."\\n";
}
最合适的回答,由SO网友:Privateer 整理而成
执行查询后,将开始以下操作:
$slide_list = array();
if ( $slides->have_posts() ) {
while ( $slides->have_posts() ) {
使用next\\u post抓取下一张幻灯片,无需踩踏全局
$slide = $slides->next_post();
$slide_id = $slide->ID;
您的图片标题是您的帖子标题:
$slide_title = $slide->post_title;
你的href是你的永久链接
$slide_href = get_permalink( $slide );
您的描述是您的帖子内容或摘录
$slide_content = $slide->post_content;
$slide_excerpt = $slide->post_excerpt;
如果需要宽度和高度,可以按如下方式获取:
$image_data = wp_get_attachment_image_src( $slide_id, \'thumbnail\');
$image_url = $image_data[0];
$width = $image_data[1];
$height = $image_data[2];
# do something here ...
$slide_list[] = array(
\'id\' => $slide_id,
\'title\' => $slide_title,
\'href\' => $slide_href,
\'content\' => $slide_content,
\'image_w\' => $width,
\'image_h\' => $height
);
}
}
希望这有帮助!
最主要的是循环浏览它们。
如果要查看所有可用数据,请在查找中使用以下内容:
echo "<pre>" . print_r($slide, true) . "</pre>";
这将显示每张幻灯片返回的所有字段。