我正在使用极简主义的JavaScript框架+ Timber开发一个WordPress网站.我注意到页面之间有大约1500毫秒的延迟.我想使用W3 Total Cache或WP Super Cache来查看我是否可以使用缓存功能,以便它可以更快地加载页面.
它似乎更快,但我有一些渲染问题.因为我使用Timber,我有部分模板,一个例子看起来像这样.
Contacts.twig
{% extends "_base.twig" %}
{% block content %}
    {% if not isAJAX %}<section>{% endif %}        
        <div>
            <div>
                <section> 
                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Necessitatibus quis doloribus libero et harum, molestiae, nam alias voluptatem sequi rem inventore aliquid reiciendis</p>
                </section>
            </div>
        </div>
    {% if not isAJAX %}</section>{% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
当我激活W3 Total Cache时,当我重新加载此页面时,http://example.com/contact,它只渲染出这个特定的HTML字符串,没有页眉或页脚,这意味着它不会渲染出来_base.twig.
在我contact.php看来,它看起来像
<?php
/**
 * Template Name: Contact Template
 */ …Run Code Online (Sandbox Code Playgroud) 所以我遇到了一个twig/timber问题,我很难获得地点图像集,这是我到目前为止所遇到的问题:
{% set defaultimg = site.theme.link ~ '/images/placeimage.png' %}
Run Code Online (Sandbox Code Playgroud)
然后在我的代码中我有:
<img src="{{ post.thumbnail.src | default(defaultimg) | resize(360, 240)}}" class="card-img-top">
Run Code Online (Sandbox Code Playgroud)
post.thumbnail.src 可以很好地提取图像,但如果帖子中没有附加特色 Img,我希望defaultimg从我的自定义主题图像文件夹中提取图像。但目前这输出了一个非常错误的网址:
<img src="https://toolcart.local/wp-contentC:\Users\User\Local Sites\toolcart\app\public\wp-content\themes\toolcart-theme\images/placeimage-360x240-c-default.png" class="card-img-top">
Run Code Online (Sandbox Code Playgroud)
但是 a{{defaultimg}}正确输出图像 url。
https://toolcart.local/wp-content/themes/toolcart-theme/images/placeimage.png
Run Code Online (Sandbox Code Playgroud)
我不确定接下来要尝试什么?
Timber 日志在 Android Studio Dolphin 2021.3.1 中不可见
日志语句
Timber.d("onCreateViewCalled using Timber")
Log.d("Login", "onCreateViewCalled using Log")
Run Code Online (Sandbox Code Playgroud)
输出
只有 Log 库日志可见,Timber 日志不可见。
logging android android-studio timber android-studio-dolphin
我只是在挖掘WordPress和Timber,我遇到了一个我无法解决的问题.
我创建了一个名为"project"的自定义帖子类型,在其中我创建了一个名为"project_category"的自定义字段.该自定义字段包含两个选项的复选框(图形,网页设计).
问题是如何显示包含project_category"graphic"的所有项目?
这是我开始的方式:
graphic.php模板
我用这些wp查询创建了一个graphic.php文件:
$context = Timber::get_context();
$args = array(
    // Get post type project
    'post_type' => 'project',
    // Get all posts
    'posts_per_page' => -1,
    // Gest post by "graphic" category
    'meta_query' => array(
        array(
            'key' => 'project_category',
            'value' => 'graphic',
            'compare' => 'LIKE'
        )
    ),
    // Order by post date
    'orderby' => array(
        'date' => 'DESC'
    ),
);
$posts = Timber::get_posts( $args );
$context['graphic'] = Timber::get_posts('$args');
Timber::render( 'graphic.twig', $context );
Run Code Online (Sandbox Code Playgroud)
graphic.twig 然后我用这个循环创建一个twig文件.
{% extends "base.twig" %}
{% …Run Code Online (Sandbox Code Playgroud) 我在Wordpressusing Timber和Route方法中构建了一个自定义归档页面.页面运行良好并显示组合,Custom Post Types但{url}/feed处的Feed不存在.
注意:以前的答案已经过编辑,可以解决令人困惑的问题.
// create CPT (x 3)
register_post_type($name, array(
  'label' => 'custom1',
  'public' => true,
  'capability_type' => 'page',
  'supports' => array( 'title', 'author', 'excerpt', 'revisions', 'thumbnail'),
  'taxonomies' => array('post_tag'),
  'has_archive' => true
));
// CPT route
Routes::map('test/filter/:filter', function($params){
    $query = array(
      'post_type' => array('custom1', 'custom2', 'custom3' )
    );
    $filter = $params;
    Routes::load('archive.php', $filter, $query, 200);
});
// paging CPT route
Routes::map('test/filter/:filter/page/:page', function($params){
    $query = array(
      'post_type' => array('custom1', 'custom2', 'custom3' ),
      'paged' …Run Code Online (Sandbox Code Playgroud) 我有一个简单的树枝模板,用于显示一个简单的菜单。我在这里有静态图像,我想使用图像 src 的模板目录路径。但是,当我使用 {{theme.link}} 时,它显示为空白。也许我引用的东西不正确。代码如下:
<?php 
      $context['menu'] = new TimberMenu('main-nav');
      Timber::render('templates/menu.twig', $context);
   ?>
Run Code Online (Sandbox Code Playgroud)
和下面的树枝模板:
 <ul>
    {% for item in menu.get_items %}
    <li class="{{item.classes | join(' ')}}">
      <a href="{{item.get_link}}">{{item.title}}</a>
    </li>
    {% endfor %}
 </ul>
 <img src="{{theme.link}}/assets/images/test.png" alt="">
Run Code Online (Sandbox Code Playgroud)
我知道我可以将目录传递给上下文,但我很好奇为什么内置函数不起作用。大概是一些简单的事情。第一次看树枝所以还是习惯了。非常感谢任何帮助!谢谢
我正在尝试为帖子输出我的 post_tags 并使用 Timber 文档中的示例。它按预期工作,但我试图将每个标签显示为一个按钮。我相信这可能看起来很简单。我只是想不通。
现在两个标签都显示为一个按钮。我试过 for 循环而不是 if 语句,它在视觉上工作(每个标签都作为按钮)但 for 循环似乎拉动了所有的 post_tags;即使是未用于此特定帖子的那些。我试过“hide_empty”,但也没有用。有没有其他方法可以解决这个问题?谢谢你!!
PHP文件
$context['categories'] = Timber::get_terms('post_tag');
Run Code Online (Sandbox Code Playgroud)
仅带有 if 语句的 Twig 文件(输出此帖子上的 2 个标签,但它是一个按钮)
{% if categories %}
      <a href="{{post.term.link}}" class="btn btn-primary">{{ post.terms('post_tag') | join(', ') }}</a>
      <pre>{{post.terms('post_tag')|print_r}}</pre>
 {% endif %}
Run Code Online (Sandbox Code Playgroud)
带有 for 循环的 Twig 文件(输出所有 post_tags,每个标签作为一个按钮)
 {% for term in categories %}
            <a href="{{post.term.link}}" class="btn btn-primary">{{term.name}}</a>   
        {% endfor %}
Run Code Online (Sandbox Code Playgroud)
有没有办法分别显示它们?
解决了:
哎呀。我正在寻找错误的区域。应该检查帖子而不是术语。
 {% for term in post.terms('tags') %}
    <li><a href="{{term.link}}">{{term.name}}</a></li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud) 在Timber 1.3.1版之前,如果您想更改帖子预览的"阅读更多"文本,则可以使用{{ post.get_preview(50, 'false', 'Keep Reading') }}.此功能已被弃用,建议使用{{ post.preview }},但似乎无法轻松过滤"阅读更多"文本.
嗨,我正在使用 Timber,它曾经很简单
_e('string', 'theme') 
Run Code Online (Sandbox Code Playgroud)
用 WPML 翻译字符串,似乎没有在木材上工作关于如何翻译字符串的任何想法?
我尝试了以下方法,但没有任何效果
{{ _e('string') }} & {{ _('string') }}
{{ _e('string', 'theme') }}
{{ function("icl_translate", 'theme', 'string_identifier', 'string) }}
{{ dump(ICL_LANGUAGE_CODE) }} // Doesn't return anything, so not an option either 
Run Code Online (Sandbox Code Playgroud)
谢谢!
这必须很简单,但我看不出有什么问题。我正在使用https://twig.symfony.com/doc/1.x/advanced.html#filters上的简单过滤器示例和 Twig 1.34 in Timber,一个 WordPress 插件。
我加了
// an anonymous function
$filter = new Twig_SimpleFilter('rot13', function ($string) {
    return str_rot13($string);
});
Run Code Online (Sandbox Code Playgroud)
和
$twig = new Twig_Environment($loader);
$twig->addFilter($filter);
Run Code Online (Sandbox Code Playgroud)
到我的主题的functions.php 文件。
但是{{ 'Twig'|rot13 }}在我的 view.twig 文件中使用会出现致命错误
PHP Fatal error:  Uncaught exception 'Twig_Error_Syntax'
with message 'Unknown "rot13" filter' in view.twig
Run Code Online (Sandbox Code Playgroud)
和通知
Undefined variable: loader in functions.php
Run Code Online (Sandbox Code Playgroud)
使用类似的过滤器{{ 'Twig'|lower }}可以正常工作。
我是否需要以不同的方式将函数添加到 functions.php?