Могу ли я передать свой php-код в ветку кода древесины

Я хотел бы знать, могу ли я конвертировать любые типы PHP-кода в twig, я хочу знать, например, могу ли я передать код.

<?php
if (ICL_LANGUAGE_CODE == 'in'):?

к

{{ lang.en }}

Есть ли способ добавить любой PHP-код, превратить его в ветку и распознать его?

Я использую шаблон Timber для WordPress.

Вы можете добавить любую пользовательскую функцию/фильтр к древесине. См. здесь

DarkBee 05.07.2019 08:58
Как убрать количество товаров в категории WooCommerce
Как убрать количество товаров в категории WooCommerce
По умолчанию WooCommerce показывает количество товаров рядом с категорией, как показано ниже.
0
1
566
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Есть хороший способ передать свои функции (вернее, зарегистрировать функцию в Twig).

Использование деревянного крючка: timber/twig

В хуке фильтра есть класс timber/twig, который может помочь нам передать функции в Twig. Звонит Timber\Twig_Function.

new Timber\Twig_Function(
    'function_name_that_will_be_called_in_Twig',
    'function_name_in_php'
);

// OR
new Timber\Twig_Function(
    'function_name_that_will_be_called_in_Twig',
    function( $input ) {
        // anonymous function is ok too.
    }
);

functions.php

add_filter( 'timber/twig', 'add_to_twig' );

function hello_in_php( $name = 'world' ) {
    $hello = 'Hello ';
    $hello .= $name;

    return $hello;
}

function add_to_twig( $twig ) {
    $func = new Timber\Twig_Function('hello', 'hello_in_php');
    $filter = new Timber\Twig_Function('introduce', function( $name ) {
        return "I'm ${name}!";
    });

    $twig->addFunction($func); //Registering a pre-defined function
    $twig->addFunction($filter); //Registering a filter function

    return $twig;
}

index.twig:

<p id='a'>{{ hello() }}</p>
<p id='b'>{{ hello('who?') }}</p>
<p id='c'>{{ "Batman"|introduce }}</p>

Результат:

<p id='a'>Hello World</p>
<p id='b'>Hello who?</p>
<p id='c'>I'm Batman!</p>

Источник: https://timber.github.io/docs/guides/extending-timber/#adding-functionality-to-twig

Вы имеете в виду что-то вроде этого сравнения?

{% if constant('ICL_LANGUAGE_CODE') == 'en' %}
    {# your output here #}
{% endif %}

Другие вопросы по теме