需要GET_TEMPLE_DIRECTORY()。‘Path/to-my/file.php’破坏了Customize>Themes功能

时间:2020-12-16 作者:sprouticus

希望得到一些帮助,请<;3.

我正在从头开始构建一个主题,作为学习WP和PHP的练习,使用WP商业主题(GeneratePress和WP默认主题)作为指导。

使用时:

$theme_dir = get_template_directory();
require $theme_dir . \'/inc/structure/header.php\';
单击“自定义”时,所有主题都会消失>;“更改”以更改主题,并显示“显示”;0“;主题位于右上角。瞧,主题缩略图没有加载或以其他方式可见。当我注释掉require stmt时,它会恢复正常。

这正是其他专业、商业主题所做的,我甚至复制/粘贴了代码,但它仍然存在。

所需文件中的文件内容包括在内,但也会显示在管理员以及其他页面上,并在加载其余页面之前闪烁。

我在函数中有基本的主题支持。php和我正在连接视口元的wp\\u head、pingbacks\\u url,并跳到内容链接以及我的样式的wp\\u enqueue\\u脚本。

我刚刚开始,所以这基本上是我到目前为止的全部主题。

我的水平还不足以理解这一点,但这里是我的调试。php:

[16-Dec-2020 20:44:46 UTC] PHP Stack trace:
[16-Dec-2020 20:44:46 UTC] PHP   1. {main}() /app/public/wp-admin/admin-ajax.php:0
[16-Dec-2020 20:44:46 UTC] PHP   2. require_once() /app/public/wp-admin/admin-ajax.php:22
[16-Dec-2020 20:44:46 UTC] PHP   3. require_once() /app/public/wp-load.php:37
[16-Dec-2020 20:44:46 UTC] PHP   4. require_once() /app/public/wp-config.php:82
[16-Dec-2020 20:44:46 UTC] PHP   5. include() /app/public/wp-settings.php:525
[16-Dec-2020 20:44:47 UTC] PHP Stack trace:
[16-Dec-2020 20:44:47 UTC] PHP   1. {main}() /app/public/index.php:0
[16-Dec-2020 20:44:47 UTC] PHP   2. require() /app/public/index.php:17
[16-Dec-2020 20:44:47 UTC] PHP   3. require_once() /app/public/wp-blog-header.php:13
[16-Dec-2020 20:44:47 UTC] PHP   4. require_once() /app/public/wp-load.php:37
[16-Dec-2020 20:44:47 UTC] PHP   5. require_once() /app/public/wp-config.php:82
[16-Dec-2020 20:44:47 UTC] PHP   6. include() /app/public/wp-settings.php:525
无论是否有要求,我都会收到这些检查器控制台错误:

Unknown property ‘speak’.  Declaration dropped. dashicons.css:27:8
Unknown property ‘speak’.  Declaration dropped. admin-bar.css:231:8
Unknown property ‘speak’.  Declaration dropped. admin-bar.css:308:8
Unknown property ‘speak’.  Declaration dropped. admin-bar.css:508:8
Unknown property ‘speak’.  Declaration dropped. admin-bar.css:614:8
Unknown property ‘speak’.  Declaration dropped. admin-bar.css:844:9
Error in parsing value for ‘min-width’.  Declaration dropped. admin-bar.css:971:14
Error in parsing value for ‘min-width’.  Declaration dropped.
我很困惑。谢谢你的帮助!

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

再次感谢@Rup为这个答案开辟了道路!

直接从所需文件进行渲染至少是问题的一部分。

我相信另一部分不是从函数内部进行渲染,也不是将所有功能挂接到目标文件中的操作中。

遵循以下步骤后,问题消失,内容正确呈现:

需要函数中的文件。php使用内置WordPress函数访问当前主题的模板目录,如上所示。

使用在目标文件中创建一个简单的动作挂钩do_action() 功能:

do_action( \'namespace_hook_name\' );

在所需文件中创建(如有必要,可插入)函数以呈现所需内容(以下基于GeneratePress格式)$优先级和$accepted\\u参数可选:

if ( ! function_exists( \'namespace_func_name\' ) ) { add_action( \'namespace_hook_name\', \'namespace_func_name\', $priority, $args ); function namespace_func_name() { // code to render }}

很抱歉,代码格式有问题。。这里还是新的<;3.

搜索商业主题,了解他们如何使用动作挂钩以及WordPress自己的默认主题,以了解更多信息并进行练习。

https://developer.wordpress.org/reference/functions/do_action/

https://developer.wordpress.org/reference/functions/add_action/