如何在多个上下文中过滤布尔值

时间:2015-01-04 11:02:20

标签: php wordpress twig

我正在使用Timber来构建我的Wordpress网站。它为基于Twig的Wordpess带来了丰富的模板引擎。

我无法解决的一种情况如下。 我有一个模板文件负责在每个循环上下文中显示帖子(存档,搜索等)。此模板也被我用来展示精选帖子的插件使用。

该插件有一些选项可以显示或隐藏信息,例如缩略图或摘录后。

此代码如下。

精选帖子插件循环,设置一些变量,包括稍后控制缩略图和摘录应该可见的变量:

   <?php while( $flexible_posts->have_posts() ) : $flexible_posts->the_post(); global $post; ?>

            <?php

                $data = Timber::get_context();
                $data['showthumb'] = $thumbnail ?: true;
                $data['thumbsize'] = $thumbsize ?: 'thumbnail';
                $data['excerpt']   = $excerpt;
                $data['post'] = new TimberPost( $post );

                if ( $post->post_type == 'product') {

                    Timber::render('woo/tease-product.twig', $data);

                } else {

                    Timber::render('partials/tease-post.twig', $data);

                }

            ?>

    <?php endwhile; ?>

从上面的代码加载的模板,由插件触发,但也来自常见的wordpress循环,以显示帖子&#34; tease&#34;:

<article {{ fn('post_class', ['$classes', 'entry'] ) }}>

    <div class="Media">

        {% do action('tha_entry_top') %}

        <div class="Media-figure">
            {% if post.thumbnail %}
                <img src="{{ post.thumbnail.src('thumbnail') }}" />
            {% else %}
                <span class="thumb-placeholder"><i class="icon-camera"></i></span>
            {% endif %}
        </div>


        <div class="Media-content">
            <h2 class="entry-title"><a href="{{post.link}}">{{post.title}}</a></h2>
            <div class="entry-meta">{{post.date|date("F jS\\, Y")}} in {{ post.terms('categories')|first }}</div>
            <p>{{post.get_preview(35)}}</p>
        </div>

        {% do action('tha_entry_bottom') %}

    </div>

</article>

我的问题是,如何使用插件选项以显示或隐藏缩略图,但仍然可以使用相同的帖子模板输出没有该变量集的常规WP循环?

0 个答案:

没有答案