我正在创建一个单页wordpress网站。我使用的代码确实有效,但由于某些原因,它将不包括页面模板。它只从页面编辑器中获取内容,但不会获取页面模板中的自定义html,因此我试图包含该文件。
我收到的错误消息是include():“打开失败”
$template = get_post_meta( get_the_ID(), \'_wp_page_template\', TRUE );
$file = get_template_directory_uri() . \'/\' . $template;
include($file);
我在这里感到困惑,因为它给我的路径是文件的正确路径。我的主题中有4个模板,根据上面的代码,其中一个模板确实被包括在内,但其他三个模板都失败了。
最合适的回答,由SO网友:birgire 整理而成
我想你是想使用:
get_template_directory()
Codex:当前主题目录的绝对路径(不带尾部斜杠)。(
link)
而不是:
get_template_directory_uri()
Codex:检索当前主题的模板目录URI。检查SSL。(
link)
如果您正在使用include()
用于PHP代码。
但您应该考虑使用:
get_page_template()
Codex:检索当前或父模板中页面模板的路径。(
link)
功能get_template_part()
在需要恢复模板部件时也很方便。