动态创建具有独特背景的部分

时间:2014-05-23 15:55:41

标签: php arrays wordpress background-image

我正在创建一个Wordpress主题,将所有页面显示为单个页面上的部分,菜单滚动到每个部分。我希望用户能够为每个页面设置一个独特的背景(这将是页面的特色图像)。我发现的是,当用户为一个页面设置图像时,它将成为所有页面的背景图像。

如何调整我的代码,以便用户可以为每个页面设置唯一的背景图像?下面是我创建所有页面并在一页上显示的代码:

<?php $pages = get_pages(array('sort_column' => 'menu_order'));
foreach ($pages as $page_data) {
    $content = apply_filters('the_content', $page_data->post_content);
    $title = $page_data->post_title;
        $slug = $page_data->post_name;
    //get url of featured image
    $thumb_id = get_post_thumbnail_id();
    $thumb_url_array = wp_get_attachment_image_src($thumb_id, 'thumbnail-size', true);
    $thumb_url = $thumb_url_array[0];
    //check if page has featured image
    if ( has_post_thumbnail() ) {
    $featured_image = $thumb_url;
    }
    else {
$featured_image = '';
    }
    echo "<section id='$slug'  class='main fullscreen'>";
echo '<article class="main parallax" style="background:url(' . $featured_image . ') 50% 0 repeat fixed;">';
echo $content;
    echo '</article>';
echo "</section>";
}
?>

2 个答案:

答案 0 :(得分:0)

是否有可能

$thumb_url_array = wp_get_attachment_image_src($thumb_id, 'thumbnail-size', true); 

行是将值添加到数组中的下一个位置而不是替换[0]位置?也许将该行更改为

$thumb_url_array[0] = wp_get_attachment_image_src($thumb_id, 'thumbnail-size', true);

会导致将正确的值分配给$ thumb_url以及if语句中的$ featured_image。

答案 1 :(得分:0)

您需要更改

$thumb_id = get_post_thumbnail_id();

$thumb_id = get_post_thumbnail_id($pages_data->ID);