0

page-home-page.twig在 Timber 模板的视图文件夹中创建。然而,

1-如果页面home-page设置为默认wordpress home-page,模板文件将不起作用。

2-如果页面home-page设置为普通页面内容,那么现在模板就可以了。

谁能告诉我问题出在哪里?

请查看木材文档

谢谢你,塔里克

4

1 回答 1

1

出于某种原因,我无法在任何地方找到可行的解决方案。然而,

我找到了一个解决方法,如果遇到同样的问题,我希望它可以帮助其他人。

我将其修复如下:

1-在我的 wordpress 主题文件夹中/wp-content/themes/my-theme/,我创建了对本指南的自定义页面模板参考:自定义页面模板

使用此代码:

<?php
/**
 * Template Name: Video Template
 * Description: A Page Template for Home page Video CMS.
 */

defined('ABSPATH') or die;
use Timber\Timber;    
$gantry = Gantry\Framework\Gantry::instance();
$theme  = $gantry['theme'];

// We need to render contents of <head> before plugin content gets added.
$context              = Timber::get_context();
$context['page_head'] = $theme->render('partials/page_head.html.twig', $context);
$post                 = Timber::query_post();
$context['post']      = $post;
Timber::render(['page-' . $post->post_name . '.html.twig', 'page-hvideo.twig'], $context);

在哪里Timber::render(['page-' . $post->post_name . '.html.twig', 'page-hvideo.twig'], $context);将我们指向主题/视图文件夹page-hvideo.twig下的新木材文件。

2-在我的 Timber 模板视图文件夹中,我page-hvideo.twig使用以下代码添加了这个文件:

{% extends "partials/page.html.twig" %}
{% set twigTemplate = 'single.html.twig' %}
{% set scope = 'single' %}
{% block content %}
    <div class="platform-content">
        <div class="content-wrapper">
            <section class="entry">
                {% include ['partials/content-' ~ scope ~ '-home-video.html.twig', 'partials/content-home-video.html.twig'] %}
            </section>
        </div> <!-- /content-wrapper -->
    </div>
{% endblock %}

Where将照常从Timber 主题文件夹下的view/partials{% include ['partials/content-' ~ scope ~ '-home-video.html.twig', 'partials/content-home-video.html.twig'] %}文件夹中管理主页自定义模板。

我希望这对其他人有帮助。

非常感谢您在这里提供的一切。

已编辑: 请确保在添加主页自定义页面模板后,从 WordPress 的页面属性部分下的帖子编辑屏幕中选择它。 在此处输入图像描述

于 2020-06-13T16:46:34.553 回答