0

我正在尝试编写一个自定义页面类型,它在 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(); ?>
4

2 回答 2

1

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

于 2012-10-17T14:17:41.607 回答
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(); ?>
于 2012-10-17T14:51:50.807 回答