Использование древесины для рендеринга страниц плагинов - PullRequest
1 голос
/ 04 мая 2020

Я делаю плагин, который добавляет кучу страниц в представление администратора WP. Мне бы очень хотелось использовать Timber, в частности, шаблонизатор Twig для визуализации этих страниц.

Хотя у меня практически нулевой опыт работы с WP и PHP в целом, меня привлекает этот подход, так как я знаком с предыдущими шаблонами Django / Flask, которые позволяют мне расширять базовый шаблон и указать блоки для заголовка, содержимого, нижнего колонтитула. Это кажется тривиальным для Timber при использовании его для создания темы, но я не могу понять, как заставить эту настройку работать в плагине. Конечно, я могу сделать что-то вроде этого:

    add_action( 'admin_menu', 'test_setup_menu' );
    function test_setup_menu() {
        add_menu_page(
            'Tables',
            'Tables',
            'manage_options',
            'test-tables',
            'admin_page_test'
        );
    }

    function admin_page_test() {
        Timber::Render( 'test.twig');
    }

Но это, конечно, отрендерит test.twig с частями верхнего и нижнего колонтитула, уже заполненными из темы. Проблема заключается в том, что я хочу иметь возможность добавлять информацию в блоки верхнего или нижнего колонтитула. Я знаю, что могу сделать это так:

add_action('admin_head', 'add_to_head')
function add_to_head() {
    ...
}

Но это именно тот тип вещей, которого я пытаюсь избежать, я sh инкапсулирую этот тип логики c в веточку шаблон. Есть ли способ заставить эту работу?

...