在functions.php中声明内联背景图像

时间:2015-08-13 13:25:55

标签: php jquery html css wordpress

我不确定是否可以这样做,因为无论我怎么努力,我找不到任何可以帮助我的东西。我在按下按钮时使用Ajax加载到帖子中。加载的帖子由my functions.php中的my function格式化。这一切都很有效,我遇到的问题是background-image:属性需要inline css,以便它可以从我的自定义字段中提取图像。但是,这一切都在模板文件中完美运行。无论我尝试什么,functions.php拒绝我的内联风格的背景图像,无论我尝试什么。

这是我的If声明:

if ($loop -> have_posts()) :  while ($loop -> have_posts()) : $loop -> the_post();


        if ($_SESSION["load_type"] == 'home')
        {
                $out .= '<div class="small-6 large-3 columns end thumb">
                            <div class="grid">
                                <figure class="effect-zoe">
                                    '.get_the_post_thumbnail( get_the_ID(), $size, $attr ).'
                                    <figcaption>    
                                        <h2>'.get_the_title().'</h2>
                                        <hr class="light">
                                        <p class="description">'.get_the_content().'</p>
                                    </figcaption>           
                                </figure>
                            </div>
                        </div>';        
        }

        else

        if ($_SESSION["load_type"] == 'category')

        {



                $out .= '<div class="small-6 large-6 columns end thumb under">
                            <div id="case">

                                <div class="th" id="element" >
                                    <a class="fill-div" href="'. get_permalink($post->ID) .'"></a>
                                </div>
                            </div>


                            <div class="brief">
                                <a href="'. get_permalink($post->ID) .'">'.get_the_title().'</a>    
                                <p class="suppy">Supplier</p>
                                <p>'.get_the_excerpt().'</p>
                                <a class="more-btn" href="'. get_permalink($post->ID) .'">More</a>
                            </div>                  
                        </div>';
        }

        else

        if ($_SESSION["load_type"] == 'product')

        {               
                $out .= '<div class="small-6 large-3 columns">
                            <div class="small-6 large-12 columns end no-pad morepro" style="background-image: url(''.the_field(product_image).'')">
                                <a class="fill-div" href="'. get_permalink($post->ID) .'"></a>
                            </div>
                            <h2 class="product-load">'.get_the_title().'</h2>
                        </div>';

        }


    endwhile;
    endif;
    wp_reset_postdata();
    die($out);

并说明我每次尝试加载background-image:

时我遇到麻烦并崩溃整个网站的部分
if ($_SESSION["load_type"] == 'product')

    {               
            $out .= '<div class="small-6 large-3 columns">
                        <div class="small-6 large-12 columns end no-pad morepro" style="background-image: url(' '.the_field(product-image).' ')">
                            <a class="fill-div" href="'. get_permalink($post->ID) .'"></a>
                        </div>
                        <h2 class="product-load">'.get_the_title().'</h2>
                    </div>';

    }


enter code here

谁能看到我出错的地方?

2 个答案:

答案 0 :(得分:4)

更改以下内容

style="background-image: url(' '.the_field(product-image).' ')"

进入

style="background-image: url('.the_field("product-image").')"

这应该适用于:

  1. 您的&#34;产品形象&#34;是自定义大小(如果它的常量使用它没有引号) - 或编辑你的问题并解释它是什么。
  2. the_field()函数需要&#34;返回&#34;价值而不是回应它。我提到这个是因为通过wordpress codex通常使用&#34; the_something()&#34;函数不会返回值,它只会显示一些东西。如果你想要返回一个值,通常是&#34; get_the_something()&#34;。这很重要,因为它会破坏你的json对象(如果这是你在js端使用的那个) 示例:the_content() vs get_the_content(),或get_the_title() vs the_title()等...
  3. 背景图片中的引号应由this选择。

答案 1 :(得分:0)

if ($_SESSION["load_type"] == 'product'){    
    $image = the_field(product_image);           
    $out .= '<div class="small-6 large-3 columns">
                <div class="small-6 large-12 columns end no-pad morepro" style="background-image: url('"'.$image.'"')">
                   <a class="fill-div" href="'. get_permalink($post->ID) .'"></a>
               </div>
               <h2 class="product-load">'.get_the_title().'</h2>
           </div>';

}

看看它是否有效