Я создаю плагин, который напрямую связан с темой, которую я разрабатываю, которая использует Timber.
Мой плагин может отображать некоторые встроенные шаблоны (когда я вызываю шорткод, плагин отвечает с правильным teplate); Эти шаблоны на данный момент являются файлами PHP.
Я бы использовал Timber для рендеринга этих файлов.
К сожалению, выпуск # 261 все еще открыт. И я понятия не имею, как мне получить ожидаемое поведение на текущей базе кодов древесины.
Ожидаемое поведение:
- Зарегистрируйте мой путь к плагину для просмотров после пути к теме.
- Когда вызывается представление, Timber сначала проверяет каталог тем, а не плагин.
Как я могу получить это? Сейчас я проверил шаблоны моей темы и просто позвонил Timber.render();
, но у меня не включен локальный путь.
Стандартный код плагина PHP:
// On plugin load
add_shortcode('render_social_icons', array($this, 'render_social_icons'));
public function render_social_icons($atts, $content)
{
$atts = shortcode_atts(array(
'class' => '',
'el-class' => '',
'link-class' => '',
'icon-class' => '',
'size' => '',
), $atts);
ob_start();
?>
<ul class="social-icons shortcode <?php echo $atts['class']; ?>">
<?php
$socials = my_socials_links();
foreach ($socials as $social) :?>
<?php
$id = $social['id'];
$title = $social['name'];
$baseurl = $social['baseurl'];
$icon = $social['icon'];
$social_data = get_theme_mod($id);
if (!empty($social_data)) :?>
<li class="<?php echo $id; ?> <?php echo $atts['el-class']; ?>">
<a target="_blank" title="<?php echo $title; ?>" href="<?php printf($baseurl, $social_data); ?>"
class="<?php echo $atts['link-class']; ?>">
<i class="<?php echo $icon; ?> <?php echo $atts['icon-class']; ?> <?php echo $atts['size']; ?>"></i>
</a>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
<?php
return ob_get_clean();
}
Преобразованная функция для Timber (все еще файл плагина):
// On plugin load
add_shortcode('render_social_icons', array($this, 'render_social_icons'));
public function render_social_icons($atts, $content)
{
$atts = shortcode_atts(array(
'class' => '',
'el-class' => '',
'link-class' => '',
'icon-class' => '',
'size' => '',
), $atts);
return Timber.compile('shortcodes/social.twig', array(atts, my_socials_links());
}
shortcodes/social.twig
находится в папке текущей темы, я хотел бы загрузить этот файл шаблона ветки из плагина плагинов.