如何显示“完整”图像URL,以便我可以在Wordpress中随机背景

时间:2012-10-17 12:51:44

标签: wordpress wordpress-theming

我正在尝试编写一个自定义页面类型,在Wordpress中为页面提供随机背景。 (即主页上的漂亮大图)。我有它的工作!但是我回复了一个大图片,任何想法如何快速添加使它显示完整的图像大小URL?

非常感谢!

(我已经把完整的代码插入了,所以任何人都可以在他们自己的网站上使用它,如果它有帮助吗?)

            <?php
            /**
             * Template Name: Fullscreen Random
            */

            get_header();

            ?> 
            <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

            <style media="screen" type="text/css">
            body {
            background: url(<?php
            $args = array( 'post_type' => 'attachment', 'numberposts' => 1, 'orderby' => 'rand', 'post_status' => null, 'post_parent' => 5 ); 
            $attachments = get_posts( $args );
            if ($attachments) {
                        foreach ( $attachments as $attachment ) {
                                echo $attachment->guid;
                }
            }
            ?>) no-repeat center center fixed;
            webkit-background-size: cover;
            moz-background-size: cover;
            o-background-size: cover;
            background-size: cover;
            }
            #menu {background:rgba(0, 0, 0, 0.2)!important;}
            * {color:white!important;}
            </style>

            <?php endwhile; ?>
            <? get_footer(); ?>

2 个答案:

答案 0 :(得分:1)

使用wp_attachment_is_image确保您只获取图片,wp_get_attachment_image_src以附件ID和“完整”作为参数,您可以从第一个获取全尺寸附件图片的网址返回数组的元素(尚未对此进行测试,但似乎可行)。

答案 1 :(得分:0)

对于那些对@“Edgar Allan Pwn”建议合并的最终剧本感兴趣的人,如下:

<?php
/**
 * Template Name: Fullscreen Random
*/

get_header();

?> 
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

<style media="screen" type="text/css">
body {
background: url(<?php

    $args = array(
    'orderby'        => 'rand',
    'post_type'      => 'attachment',
    'post_parent'    => $post->ID,
    'post_mime_type' => 'image',
    'post_status'    => null,
    'numberposts'    => 1,
    );

    $attachments = get_posts($args);

    if ($attachments) {

        foreach ($attachments as $attachment) { ?>

        <?php $full = wp_get_attachment_image_src( $attachment->ID, 'full', false, false );

        echo $full[0];

        }
    } 

?>) no-repeat center center fixed;
webkit-background-size: cover;
moz-background-size: cover;
o-background-size: cover;
background-size: cover;
}
#menu {background:rgba(0, 0, 0, 0.2)!important;}
* {color:white!important;}
</style>

<?php endwhile; ?>
<? get_footer(); ?>