问题描述
WordPress 工作没有主题吗?如果是这样,那么它如何工作?请简单解释一下。
如果 WordPress 显示的内容没有主题,什么控制输出?
最佳解决方案
我觉得有一首歌:
“Imagine there’s no theme. It’s easy if you try. No hell below us. Above us only sky …” 😉
所以在那个虚构的梦想中:
-
您仍然可以从您的网站获取 RSS Feed:
example.com/feed/
-
您仍然可以登录到您的后端:
example.com/wp-login.php
-
您仍然可以访问后端并在那里工作 (几乎) 像往常一样:
example.com/wp-admin/
-
调度帖子将无法正常工作,因此您将收到 Missed schedule 消息。
-
wp-cron
不可靠。 -
您仍然可以访问
/wp-admin/admin-ajax.php
-
您可以使用
template_redirect
和tempate_include
钩子来控制输出。尝试这个小插件:<?php /** Plugin Name: No-Theme-Day **/ add_action( 'template_redirect', function() { wp_die( __( "Jibby! It's the No-Theme-Day today!" ) ); } );
-
…
ps:原谅我星期五的答案 – 「But I’m not the only one」;-)
次佳解决方案
由于使用没有主题的 WordPress 是相当罕见的技术性没有得到很多的关注。
首先你必须明白在 WordPress 核心处理请求时有多个”endpoints” 。
-
管理端有自己的 (和众多的),如
wp-admin/index.php
。 -
前端几乎普遍通过
index.php
在根,但它通常是”hidden” 由漂亮的永久链接
如果你的 take a look at the latter file 它有以下行:
define('WP_USE_THEMES', true);
所以通常 WordPress 希望前端总是有一个主题,并相应地配置运行时环境。这个常数不会太大,只有在 template-loader.php
中加载主题模板。
请注意,它不会阻止在核心引导过程中加载父/子主题 (如果存在) 。
因此,默认情况下,WordPress 希望至少有一个主题存在,启用,并且将模板用于前端显示。
然而,这只是一个默认的问题,可以完全配置掉。在这种情况下,WordPress 将继续在管理端完全运行,而在前端,所有依赖主题模板的请求都将停止显示任何内容。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。