问题描述

我找不到关于什么是以及如何使用 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 插件的信息没有太多信息,但我会尝试放几点

  1. 它们与正常的插件不同,因为它们不能被包装通过 wordpress 管理员安装。

  2. 使用它们意味着所有者手动将插件上传到正确的位置。所以假设它是写的& 由业主自己添加。

  3. 这些插件只是为了具有特定于 wordpress 网站的代码。

  4. 由于所有者添加它们,因此无法从管理面板控制 (激活/停用) 。核心内容包含 include 语句。

  5. 他们不需要任何文件头。

总而言之,它们是硬编码为要包含的 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。