0

我正在使用一个名为“ Backstretch ”的 javascript 在我的网站背面显示一个图像,当视口变大或变小时该图像会调整大小。现在我想将它与 WordPress 的get_post_thumbnail函数结合起来,这样我就可以将背景图像设置为特色图像。

我尝试了标准的 WP 功能,但这不起作用,因为它添加了标签:

 $.backstretch("<?php echo get_the_post_thumbnail( $post_id, $size, $attr ); ?>");

所以我需要去掉这些标签。我已经接近了,因为我现在得到了一个 url(和图像),但它总是同一个,即使我在每个页面上设置了不同的特色图像

 <?php $url = wp_get_attachment_url( get_post_thumbnail_id($post_id, $size, $attr ) ); ?>

 <script>$.backstretch("<?php echo $url; ?>");</script>
4

2 回答 2

0

尝试像这样使用全局 $post 对象:

<?php global $post; $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID, 'full' ) ); ?>

 <script>$.backstretch("<?php echo $url; ?>");</script>
于 2014-03-12T15:14:49.910 回答
0

您将在本教程中获得问题的答案:http: //sridharkatakam.com/set-featured-image-full-sized-background-posts-pages-wordpress/

创建一个 backstretch-set.js 文件并包含 jQuery(document).ready(function($) { $("body").backstretch([BackStretchImg.src],{duration:3000,fade:750}); });

然后将两个 js 文件(backstretch.js 和你的 backstretch-set.js)排入你的 functions.php

//* Enqueue Backstretch script
add_action( 'wp_enqueue_scripts', 'enqueue_backstretch' );
function enqueue_backstretch() {

//* Load scripts only on single Posts, static Pages and other single pages and only if featured image is present
if ( is_singular() && has_post_thumbnail() )

    wp_enqueue_script( 'backstretch', get_bloginfo( 'stylesheet_directory' ) . '/js/jquery.backstretch.min.js', array( 'jquery' ), '1.0.0' );
    wp_enqueue_script( 'backstretch-set', get_bloginfo('stylesheet_directory').'/js/backstretch-set.js' , array( 'jquery', 'backstretch' ), '1.0.0' );

    wp_localize_script( 'backstretch-set', 'BackStretchImg', array( 'src' => wp_get_attachment_url( get_post_thumbnail_id() ) ) );
于 2014-09-02T07:23:09.180 回答