wp-content / install.php是插件吗?


9

我找不到有关什么是以及如何使用Drop-in插件的文档或讨论。
在此问答中提出了问题,请在安装时填充内容

wp-content/install.php重新定义可插拔功能的文件是否是wp_install_defaultsDrop-in插件?

我的研究结果

以下列表来自hakre的文章 (这似乎互连网中所有其他副本的来源)

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.

在食品法典中,定义为

具体的PHP文件


最初,[wp-hackers]列表上没有任何内容。而搜索“投递+ wordcamp”我只发现这个的意义我的重点

WordPress的一大优势是其插件系统。在即将发布的2.1版本中,几乎没有什么可以作为嵌入式插件使用的。这样可以轻松地将WordPress用作CMS,并使您的自定义设置与主代码行分开;从而简化了升级和维护。


1
不仅仅是语义吗?不是讲英语的人,我看不到“插件”和“插件”之间的隐式区别
Mark Kaplun 2012年

@MarkKaplun:不,不,这与语义无关。问题在第三句话:是重新定义[...]的wp-content / install.php文件
brasofilo 2012年

我不明白你的目的。您知道插件已经像mu-plugins一样加载了文件,只是没有插件头。什么是开放的?
fuxia

@toscho,要点:Wyck表示这wp-content/intall.php不是Drop-in。相信他的知识,我认为需要一个问题来阐明这一点。如果没有,我会很乐意删除它。我不想创建任何其他争论性话题。
brasofilo 2012年

那将提出一个更好的问题:install.php一个插件吗?
fuxia

Answers:


9

要回答您的问题,是的

实际上,您可以在该文件中覆盖许多其他功能,它作为“ wp-admin / includes / upgrade.php”的第一行包含在内,并且内部还有许多功能可以覆盖

不幸的是,没有关于插件的太多信息,但我会尝试提出几点意见。

  1. 它们与普通插件不同,因为它们无法通过wordpress admin进行打包和安装。
  2. 使用它们意味着所有者将插件手动上传到正确的位置。因此,假设它是由所有者自己编写和添加的。
  3. 这些插件仅具有特定于特定wordpress网站的代码。
  4. 由于它们是由所有者添加的,因此无法通过管理面板对其进行控制(激活/停用)。include语句在核心中进行了硬编码。
  5. 他们不需要任何文件头。

总而言之,每当WordPress加载相应功能时,它们都是经过硬编码以包含(如果有)的php文件。

要使用它们,只需在“ wp-content”目录中创建一个具有该名称的php文件,它将自动包含在内。该文件当然可以根据需要包括任意数量的其他文件。

编辑

正如toscho所指出的,
1)插件(如果可用)也与所有其他插件一起在wordpress管理面板中列出。尽管与其他插件不同,您没有控制权从那里停用它们。
2)WordPress本身进行升级(核心升级)时,不会更改“ wp-content”目录。因此,这些插件在升级之间永远不会改变。
3)您可以在中定义一个常量,wp-config.php以将“ wp-content”目录更改为其他目录。您需要定义的常量是WP_CONTENT_DIR。这还会更改其他常量(例如,plugins目录)的默认值,因此,如果需要,您也需要注意这一点。


2
您可以添加它们,使其不受WordPress更新的影响,列在插件管理页面中,并且您可以在中定义其他插入路径wp-config.php
fuxia

总结不错,Mridul。我刚刚搜索了核心,是的,您几乎将代码所说的翻译成英文。
brasofilo 2012年

1

如何wp-content/install.php作品;

WP安装过程运行 wp-admin/install.php

在安装的第39行运行 wp-admin/includes/upgrade.php

require_once( dirname( __FILE__ ) . '/includes/upgrade.php' );

这个文件然后检查install.php了生成的用户首先将默认安装这个代码,看到的,如果没有找到运行;

( file_exists(WP_CONTENT_DIR . '/install.php') )
    require (WP_CONTENT_DIR . '/install.php');

此工作流程以何种方式影响我们install.php成为“随心所欲”的人?
brasofilo 2012年

我仍然想通过mu-plugin上面的注释来区分它,这仍然是一个“插入式” ,抱歉,我认为Mridul Aggarwal的说法是正确的。
Wyck

没有问题,我真的很困惑。但是,如果系统调用“必须使用”的一种,而“直接插入”的则是另一种,则我们应该遵守约定。干杯:)
brasofilo 2012年

Ya的命名约定应该更加明确,但大多数人也不了解该习俗install.php
Wyck
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.