标签: timber

WordPress 中的 Post 对象 Timber/Twig 问题

我有一个 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但它仍然不起作用。

wordpress twig timber

2
推荐指数
1
解决办法
2475
查看次数

在Timber中使用自定义功能

我一直在尝试通过使用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代码,如下所示: …

wordpress timber

1
推荐指数
1
解决办法
2438
查看次数

使用 Twig 和 Timber 时在 WooCommerce 循环中获取正确的产品链接

我已经自定义了一些 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)

php wordpress twig woocommerce timber

1
推荐指数
1
解决办法
109
查看次数

Timber Wordpress - 显示两个类别的帖子块

我用以下内容创建了一个新的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),但由于某种原因,这已经打败了我.

wordpress twig timber

0
推荐指数
1
解决办法
2604
查看次数

如何扩展 TimberPost

可能这是显而易见的事情,已经在我的鼻子底下逃过了一劫。

我不明白如何将我的扩展课程与木材挂钩。

让我们以问题为例。我怎样才能得到一个像MySitePost我打电话时的对象Timber::query_post()

所以现在我有了一种简单的方法来引用{{ post.issue }}我们的树枝模板中的 。看起来像一个自动过程......但我对此不太确定!

供参考:https : //timber.github.io/docs/guides/extending-timber/

wordpress twig timber

0
推荐指数
1
解决办法
557
查看次数

twig/wordpress 检查值是否在数组中

我正在测试我的树枝模板中的数组中是否存在一个值

<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)

wordpress twig timber

0
推荐指数
1
解决办法
33
查看次数

标签 统计

timber ×6

wordpress ×6

twig ×5

php ×1

woocommerce ×1