问题描述
我找不到关于什么是以及如何使用 Drop-in 插件的文档或讨论。这个 Q& A,Populate content on install 提出了这个问题。
是 wp-content/install.php
文件重新定义可插拔函数 wp_install_defaults
一个 Drop-in 插件吗?
我的研究成果
以下列表来自 hakre’s article(这似乎是 Interwebs 中所有其他副本的起源) 。
File Type of Plugin Loaded Context
advanced-cache.php Advanced caching plugin. on WP_CACHE value Single
db.php Custom database class always Single
db-error.php Custom database error message on error Single
install.php Custom install script on install Single
maintenance.php Custom maintenance message on maintenance Single
object-cache.php External object cache always Single
sunrise.php Executed before Multisite is loaded on SUNRISE value Multi
blog-deleted.php Custom blog deleted message on deleted blog Multi
blog-inactive.php Custom blog inactive message on inactive blog Multi
blog-suspended.php Custom blog suspended message on archived or spammed blog Multi
Source: Data taken from global function _get_dropins() in wp-admin/includes/plugin.php.
在法典中,Drop-in 是 defined as:
The concrete PHP-file
首先,[wp-hackers] 列表中没有任何内容。并搜索 「drop-in + wordcamp」 我只有 found this 相关我的重点:
One of the great strengths of WordPress is its plugin system. In the upcoming 2.1 release, there is very little you can』t do as a drop-in plugin. This makes it easy to use WordPress as a CMS and keep your customizations separate from the main codeline; which in turn simplifies upgrades and maintenance.
最佳解决方案
回答你的问题,是的
事实上,还有很多其他的功能可以覆盖在该文件中,它被作为”wp-admin/includes/upgrade.php”& 内部有很多功能被覆盖
不幸的是,关于 drop-in 插件的信息没有太多信息,但我会尝试放几点
-
它们与正常的插件不同,因为它们不能被包装通过 wordpress 管理员安装。
-
使用它们意味着所有者手动将插件上传到正确的位置。所以假设它是写的& 由业主自己添加。
-
这些插件只是为了具有特定于 wordpress 网站的代码。
-
由于所有者添加它们,因此无法从管理面板控制 (激活/停用) 。核心内容包含 include 语句。
-
他们不需要任何文件头。
总而言之,它们是硬编码为要包含的 php 文件 (如果存在),每当 wordpress 加载相应的功能时。
要使用它们,只需在”wp-content” 目录& 它将被自动包含。该文件当然可以包括任意数量的其他文件。
EDIT
正如 toscho 指出的那样,1)Drop-ins(如果可用) 也在 wordpress 管理面板中列出了所有其他插件。虽然与其他插件不同,但是您没有控制 de-activate 。 2)Wordpress 在升级时 (核心升级) 不改变”wp-content” 目录。因此,这些插件在升级之间从不改变。 3) 您可以在 wp-config.php
中定义一个常量来将”wp-content” 目录更改为其他目录。您需要定义的常数是 WP_CONTENT_DIR
。这也会更改其他常量 (如 plugins 目录) 的默认值,因此,如果需要,还需要照顾它
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。