插件内的Wordpress Shortcode

时间:2015-12-07 15:15:12

标签: php css wordpress wordpress-plugin shortcode

以下是我正在撰写的其中一个插件中的shortcodes.php文件的片段。

if($home_loop->have_posts()) {
        switch($display) {      

        case "static":

                while ($home_loop->have_posts()): $home_loop->the_post();

                        if(has_post_thumbnail() ) { 
                            $content .= '<div class="parallax">';
                            $content .= get_the_post_thumbnail($post->ID, 'wrapper-wide', array('class' => "img-responsive")); 
                            $content .= '</div>';
                            $content .= '<div class="container">';
                            $content .= get_the_content();
                            $content .= '</div>';

                            $content .= '<style>';
                            $content .= '.parallax{//css style here}';

                            $content .= '</style>;



                        } else {
                            //Something
                        }

                endwhile;

                break;

这很完美。如果我在我的家庭帖子中放置一个精选图片缩略图,它将显示在我的视差div中。我的问题是,而不是将缩略图放在div中,我希望它有background-image:url()。我在下面找到了这段代码

<?php
$background = get_field( 'background_image' );

if($background):
?>
<style>
.main-wrapper {
 background-image: url(<?php echo $background ?>);
}
</style>
<?php endif; ?>

我如何在$ content中合并并运行这样的内容?我试图将图像作为背景图像的原因:url()是我可以添加特定的CSS样式,如背景位置,大小,重复,附件。

1 个答案:

答案 0 :(得分:0)

为什么不直接在代码中添加图像作为背景图像? [wp_get_attachment_image_src] [1]将返回任何附件的网址,宽度和高度的数组。将其传递给精选图像的ID,并可灵活使用您想要的任何尺寸,而不仅仅是实际的特色图像尺寸。然后使用内联CSS将其作为背景。如果需要,可以在CSS表格中覆盖它。

($home_loop->have_posts()) {
        switch($display) {      

        case "static":

                while ($home_loop->have_posts()): $home_loop->the_post();

                        if(has_post_thumbnail() ) {
                            $post_thumnail_info = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'wrapper-wide' );
                            $content .= '<div class="parallax" style="background-image: url( \'' . $post_thumbnail_info[0] . '\' );">';