在wp循环中单击按钮后设置bodybg

时间:2014-05-28 11:07:22

标签: javascript php wordpress

这是我的wp循环:

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

<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) ); ?>
<div style="background:url(<?php echo $url; ?>);">
    <button id="change">preview</button>
</div>


<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
<?php get_footer(); ?>

点击按钮&#34;更改&#34;它应该将我的身体背景改为$ url,例如

<body style="background:url($url);

其中$ url是缩略图网址

任何想法如何制作? 问候

1 个答案:

答案 0 :(得分:0)

编辑:我注意到你正在使用id =“change”。 Id是唯一的,如果你的循环使用相同的Id创建多个按钮,它将无法工作。 make class =“change”。我为你编辑了其余部分。

这是一个jsfiddle。 http://jsfiddle.net/Grimbode/2bt8Q/1/

您应该将您的网址加载为隐藏输入的值,如下所示:

<body>
<div>
    <button class="change">preview<input type="hidden" value="http://pngimg.com/upload/tree_PNG2517.png"/></button>
</div>
</body>

然后使用jQuery:

$('.change').on('click', function(){
    $(document.body).css('background', 'url('+$(this).find('input').val()+')');
});

单击该按钮时,它会将document.body的背景更改为URL。

因此你的php文件应如下所示:

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

<?php $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) ); ?>
<div>
    <button class="change">preview<input type="hidden" value="<?php echo $url; ?>"/></button>
</div>


<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
<?php get_footer(); ?>

希望这会有所帮助,欢呼。