問題描述
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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。