我有一个 ACF 字段,它是一个中继器,中继器内部是一个 Post 对象。
控制器
/* Template Name: Strategic Partners */
use Timber\Timber;
use Timber\PostQuery;
use Flynt\Utils\Options;
use const Flynt\Archives\POST_TYPES;
$context = Timber::get_context();
$context['slider'] = get_field('slider');
$context['featured'] = get_field('featured');
if (isset($_GET['contentOnly'])) {
    $context['contentOnly'] = true;
}
Timber::render('templates/StrategicPartners/index.twig', $context);
Run Code Online (Sandbox Code Playgroud)
这是视图中的片段
{% for partner in Post(featured) %}
  {{ partner.link }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我正在var_dump获取上下文,它正在获取木材帖子...但{{ partner.title }}没有获取帖子标题,它是空白的。
{{ partner.link }}直接链接出来。
输出
http://***/strategic-partners/
http://***/strategic-partners/
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?我{{ Post() }}}在一个单独的中继器中使用,在其foreach自身内部并且在另一个页面上工作,但它在这里也不起作用,所以我尝试了包含在其中的 Post() ,foreach但它仍然不起作用。
我一直在尝试通过使用Timber starter主题中的示例并遵循Timber docs中的说明来使自定义函数正常工作,但是我一生都无法正常工作。
我的functions.php就像这样:
class StarterSite extends TimberSite {
    ...
    function my_function() {
        return "Foo";
    }
    function add_to_twig( $twig ) {
        /* this is where you can add your own functions to twig */
        $twig->addExtension( new Twig_Extension_StringLoader() );
        $twig->addFilter('my_function', new Twig_SimpleFilter('my_function', array($this, 'my_function')));
        return $twig;
    }
}
Run Code Online (Sandbox Code Playgroud)
然后是我的Twig文件:
{{ my_function }}
Run Code Online (Sandbox Code Playgroud)
这返回
Twig_Error_Syntax: Unknown "my_function" function
Run Code Online (Sandbox Code Playgroud)
所以我试着让我的树枝像
{{ function (my_function)  }}
Run Code Online (Sandbox Code Playgroud)
那又回来了
Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用functions.php代码,如下所示: …
我已经自定义了一些 WooCommerce 模板,并且正在使用 Twig 模板系统和 Timber。
在类别页面上,我刚刚注意到产品图片都正确链接到相应的产品,但它们下面的标题都链接到页面上的第一个产品。
两者之间的区别是自定义了带有照片的正确链接部分,而错误的链接标题是通过 WooCommerce 挂钩生成的。
这是我各自的文件:
存档-product.php
defined( 'ABSPATH' ) || exit;
$context            = Timber::get_context();
$context['shop-sidebar'] = Timber::get_widgets( 'shop-sidebar' );
$posts = Timber::get_posts();
$context['products'] = $posts;
$context['search_str'] = (get_search_query()) ? get_search_query() : '';
if ( is_product_category() ) {
    $queried_object = get_queried_object();
    $term_id = $queried_object->term_id;
    $context['category'] = get_term( $term_id, 'product_cat' );
    $context['title'] = single_term_title( '', false );
} elseif (is_shop()) {
    $shop_id = get_option( 'woocommerce_shop_page_id' );
    $post = new TimberPost($shop_id);
    $alt_title = …Run Code Online (Sandbox Code Playgroud) 我用以下内容创建了一个新的page-test.php.
$query = array('category_name' => 'blog, portfolio');
$context['posts'] = Timber::get_posts($query);
Run Code Online (Sandbox Code Playgroud)
这显示了来自这些类别的帖子很棒,但我想将它们分组到页面上的特定div中.目前我无法获取我的自定义页面或挑逗twig文件(我不知道我是否需要两者或只是一个)来覆盖默认的树枝页面.我做了更改,要么打破页面,要么似乎什么都不做.
我确信这是完全错误的.
{% extends "base.twig" %}
{% block content %}
    {% for post in posts %}
        <div class="blog">
            {% include ['tease-'~post.post_type~'.twig', 'tease.twig'] %}
        </div>
    {% endfor %}
    {% for post in posts %}
        <div class="portfolio">
            {% include ['tease-'~post.post_type~'.twig', 'tease.twig'] %}
        </div>
    {% endfor %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
我不知道如何让特定的twig文件显示我想要的内容.
在此先感谢您的帮助.
请注意我之前使用的是Expression Engine,Statamic和Craft,所以我对这种类型的东西非常熟悉(虽然不是php),但由于某种原因,这已经打败了我.
可能这是显而易见的事情,已经在我的鼻子底下逃过了一劫。
我不明白如何将我的扩展课程与木材挂钩。
让我们以问题为例。我怎样才能得到一个像MySitePost我打电话时的对象Timber::query_post()?
所以现在我有了一种简单的方法来引用
{{ post.issue }}我们的树枝模板中的 。看起来像一个自动过程......但我对此不太确定!
供参考:https : //timber.github.io/docs/guides/extending-timber/
我正在测试我的树枝模板中的数组中是否存在一个值
<input type="hidden" name="s" value="{{ search_value }}">
  <label>
    <input type="checkbox"  
           name="cat[]" 
           value="3" 
           onchange="this.form.submit()"
           {% if 3 in cat  ? ' checked' : '' %} >
    <span>cbd</span>
  </label>
  {{ cat }}
Run Code Online (Sandbox Code Playgroud)
我{{ cat }}在页面上的转储数组,我确定我的问题是一个愚蠢的语法错误。我得到的错误是
致命错误:未捕获的异常:模板意外结束。在....
如果我以这种方式包装,我会得到一个不同的错误
 {% (if 3 in cat)  ? ' checked' : '' %} >
Fatal error: Uncaught Exception: A block must start with a tag name.
Run Code Online (Sandbox Code Playgroud)