子目录中模板的GET_TEMPLATE_PART不工作

时间:2020-05-19 作者:AmLam

我正在开发我的第一个wordpress网站,并将其在线移动。我已经添加了一些额外的模板来设计一个简单的预订引擎,它在我的离线localhost服务器上运行得非常好。

然而,我在获取这些模板和其他模板时遇到了麻烦。要在live网站上工作的php文件。似乎使用特定路径来定位模板或文件不起作用;get_template_part()include() 仅当模板/文件位于同一文件夹中时,才能加载该模板/文件。

例如,我有一个名为“Bevestigingstemplate”的页面模板。php在我的子主题文件夹(theme Child)中,我在我的一个网页上激活了它。在这个模板中,我想调用一个名为“bevestiging”的文件。php”,位于主题子/模块/内容中。

但是,如果我打电话get_template_part(\'modules/content/bevestiging\')include(\'modules/content/bevestiging\'), 它失败了,我得到了一个坏页。但如果我移动“斜切”。php’直接进入my Child主题的文件夹并调用get_template_part(\'bevestiging\'), 它就像一个符咒。

现在,我不想在我的子主题文件夹中出现一个混乱的模板和子模板列表,所以我正在拼命寻找解决方法。我在某个地方读到,我可能应该添加一个配置。我的子主题文件夹中的php文件定义了一个“根”,但我找不到一个清晰的演练,希望可以用一种更简单的方法来修复它,或者至少先了解一下我的错误所在。

欢迎就如何进行提供任何建议。谢谢

下面是我在Bevestigingstemplate中使用的代码。php(基本上只是从主主题复制了page.php)。

get_header(); ?>

    <div id="primary" class="content-area <?php do_action(\'adviso_primary-width\'); ?>">
        <main id="main" class="site-main">

            <?php
                get_template_part(\'modules/content/bevestiging\');
                ?>

        </main><!-- #main -->

    </div><!-- #primary -->

<?php

get_footer();

2 个回复
最合适的回答,由SO网友:vancoder 整理而成

你要找的是get_stylesheet_directory().

get_template_part( get_stylesheet_directory() . \'/modules/content/bevestiging.php\');
这将为您提供当前主题的文件路径。

SO网友:AmLam

最后,主要的问题是我的坡口加工中的“包括”。php文件。我通过使用include __DIR__ . \'/../../Includes/form.php\'.感谢您的支持!

相关推荐

为什么TEMPLATE_INCLUDE不能正确使用AMP?

在你提问之前,我已经查看了类似的问题以找到解决方案,但我找不到有效的解决方案。我试过几次permalink选项,我的htaccess文件中没有任何东西会导致404,也没有安装缓存软件,我没有使用其他插件重定向或amp,is\\u single()工作得很好,但是is\\u page()没有,我也试过is\\u front\\u page()、is\\u category()、is\\u home(),is\\u page(“特定页面”),但似乎同样不起作用body\\u class()包含在body标记中