我希望有人能提供帮助,我已经使用Flexslider创建了一个滑块插件,可以使用自定义的帖子类型等。无论如何,这一切都很好,除了我想将图像设置为li中不包含的Flexslider的背景。我似乎不明白为什么语法是错误的。如果有人能帮忙那就太好了。这是我到目前为止的情况。实例here 我想要实现的目标。基本上,我需要保持一个固定的高度,并在图像发生故障时对其进行裁剪,这样它就不会像flexslider那样在移动设备上变得很小。我还需要它随着屏幕大小的增加进行缩放,这样它就不会像素化。
<?php
// Function used to display slider
function cs_get_slider(){
$cs_slider= \'<div class="flexslider"><ul class="slides">\';
query_posts( array(
\'post_type\' => \'slider-image\',
\'posts_per_page\' => 10000 )
);
if (have_posts()) : while (have_posts()) : the_post();
$img= get_the_post_thumbnail(get_the_ID());
$caption = caption_content();
$cs_slider.=\'<li style="background: url(\'<?php echo $background_image[\'url\'] ?>\')">\'.$img.\'<div class="banner-caption meta">\'.$caption. \'</div></li>\';
endwhile; endif;
wp_reset_query();
$cs_slider.= \'</ul></div>\';
return $cs_slider;
}
function cs_slider_shortcode(){
$cs_slider= cs_get_slider();
return $cs_slider;
}
add_shortcode(\'slider\', \'cs_slider_shortcode\');
?>
这就是一切崩溃的地方。
$cs_slider.=\'<li style="background: url(\'<?php echo $background_image[\'url\'] ?>\')">\'.$img.\'<div class="banner-caption meta">\'.$caption. \'</div></li>\';
提前感谢!
最合适的回答,由SO网友:Luis Sanz 整理而成
从WordPress 4.4开始,您可以使用the_post_thumbnail_url()
在…内The Loop 要轻松获取特色图像源,请执行以下操作:
<div style="background-image: url(<?php the_post_thumbnail_url(); ?>);">
//Your html code
</div>
如果需要与4.4之前的版本兼容,
wp_get_attachment_image_src()
将完成这项工作。与其名称相反,它不会直接返回图像位置,而是返回一个包含位置、宽度、高度及其调整大小值的数组。您需要访问返回数组的第一个元素:
<?php
$post_thumbnail_id = get_post_thumbnail_id();
$featured_image = wp_get_attachment_image_src( $post_thumbnail_id, \'full\' ); //The second argument is the size
?>
<div style="background-image: url(<?php echo $featured_image[0]; ?>);">
//Your html code
</div>
除此之外,你应该避免使用
query_posts()
除非你确定你在做什么。您可以阅读更多有关此主题的内容
here. 作为替代用途
get_posts()
之后是
setup_postdata()
正常工作,就像您在循环中的位置一样,或者使用
WP_Query
对象