如何确定 wordpress 模板文件是通过自定义循环从外部还是内部访问的?

How to find out if a wordpress template file was accessed externally or internally via a custom loop?

是否有办法查明 wordpress 模板文件是从外部访问还是通过 wordpress 函数访问?

我有一个正在开发中的单页纸,它由多个单独的页面组成,这些页面通过中央前端组装成一个页面-page.php。

我想加载额外的东西,以防这些单一页面之一被外部访问(即不是通过我的 onepager 模板)。

在我的例子中,首页运行一个自定义循环,通过

加载主菜单中存在的所有项目
$template_part = get_post_meta($menu_item->object_id, '_wp_page_template', true);
include(locate_template($template_part));

每个页面都有一个自定义默认模板。

因此,如果直接访问这些页面之一(即不通过我的主单页前端-page.php),页面就会中断。有没有办法知道 page/template 是通过我的自定义循环调用的,还是通过外部访问子页面直接加载模板的?

非常感谢您的帮助!

好的。所以如果其他人正在搜索这个:我通过设置变量并将其从 front-page.php 传递到子模板部分来解决问题,我在其中检查变量 - 如果已设置,我假设该模板是从单页机调用的。如果没有,我重定向到主页。如果有更好的解决办法我还是很想知道的!

可以在此处找到将变量传递给模板的方法:https://www.wpastronaut.com/blog/passing-data-to-wordpress-template-parts/