Является ли wp-content / install.php Drop-in?

9

Я не могу найти документацию или обсуждения о том, что такое и как использовать подключаемые модули.
Вопрос был поднят в этом Q & A, Заполните контент при установке .

Является ли wp-content/install.phpфайл, который переопределяет подключаемую функцию, подключаемым wp_install_defaultsплагином или нет?

Мои результаты исследований

Следующий список взят из статьи Хакре (которая, кажется, является источником всех других копий в паутинах) .

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 определяется как :

Конкретный PHP-файл


Во-первых, в списке [wp-хакеров] ничего нет. И в поисках «капля в + WordCamp» Я только нашел это из уместности моего внимания :

Одна из сильных сторон WordPress - система плагинов. В следующем выпуске 2.1 очень мало что вы не можете сделать в качестве подключаемого модуля . Это позволяет легко использовать WordPress в качестве CMS и отделять ваши настройки от основной кодовой строки; что в свою очередь упрощает модернизацию и обслуживание.

brasofilo
источник
1
Разве это не просто семантика? Не являясь носителем английского языка, я не вижу подразумеваемого различия между «подключаемым плагином» и «плагином»
Марк Каплун
@MarkKaplun: Нет, нет, дело не в семантике. Вопрос к 3-му предложению: является ли файл wp-content / install.php, который переопределяет [...]
brasofilo
Я не понимаю, для чего ты. Вы уже знаете, что вставки - это файлы, загружаемые как mu-plugins, только без заголовка плагина. Что открыто?
fuxia
@ toscho, к делу: Вик сказал, что wp-content/intall.phpэто не Drop- In . Полагаясь на его знания, я подумал, что Вопрос необходим для прояснения этого. Если нет, я с удовольствием удалю это. Я не хочу создавать какую-либо другую полемическую тему.
brasofilo
Это было бы сделать лучше вопрос: Является ли install.phpкапля в?
fuxia

Ответы:

9

Чтобы ответить на ваш вопрос, да

Фактически, есть много других функций, которые вы можете переопределить в этом файле, он включен в качестве первой строки «wp-admin / includes / upgrade.php» и есть много функций, которые нужно переопределить

К сожалению, информации о подключаемых плагинах не так много, но я постараюсь выделить несколько моментов.

  1. Они отличаются от обычных плагинов в том смысле, что они не могут быть упакованы и установлены через WordPress Admin.
  2. Их использование означает, что владелец вручную загрузил плагин в правильном месте. Предполагается, что он написан и добавлен самим владельцем.
  3. Эти плагины предназначены только для кода, специфичного для конкретного сайта WordPress.
  4. Так как они добавлены владельцем, их нельзя контролировать (активировать / деактивировать) из панели администратора. Оператор включения жестко закодирован в ядре.
  5. Им не нужно иметь никаких заголовков файлов.

Подводя итог, они представляют собой php-файлы, жестко закодированные для включения (если они существуют) всякий раз, когда соответствующие функции загружаются в wordpress.

Чтобы использовать их, просто создайте php-файл с таким именем в каталоге «wp-content», и он будет автоматически включен. Этот файл может, конечно, включать любое количество других файлов по мере необходимости.

РЕДАКТИРОВАТЬ

Как отметил Тосхо,
1) Встраиваемые модули (если они есть) также перечислены в админ-панели WordPress со всеми остальными плагинами. Хотя в отличие от других плагинов, вы не можете деактивировать их оттуда.
2) Wordpress при обновлении (обновление ядра) не изменяет каталог «wp-content». По этой причине эти плагины никогда не меняются между обновлениями.
3) Вы можете определить константу в, wp-config.phpчтобы изменить каталог "wp-content" на какой-либо другой. Константа вам нужно определить это WP_CONTENT_DIR. Это также изменяет значения по умолчанию для других констант, таких как каталог плагинов, поэтому вам нужно будет позаботиться и об этом, если это необходимо

Мридул Аггарвал
источник
2
Вы можете добавить, что они выдержат обновление WordPress, перечислены на странице администрирования плагина, и вы можете определить дополнительные пути вставки wp-config.php.
fuxia
Хорошее резюме, Мридул. Я только что искал ядро и да, вы почти переводите на английский то, что написано в коде.
brasofilo
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являемся Drop- In или нет?
brasofilo
Это все еще «вставка», я просто хотел провести различие с тем, что mu-pluginя прокомментировал выше, извините за путаницу, я думаю, что Мридул Аггарвал прав.
Вик
Нет проблем, я действительно запутался. Но если система вызывает Must-use одного вида и Drop-in другого вида, мы должны придерживаться соглашения. Ура :)
brasofilo
Я. Соглашения об именах должны быть более ясными, но большинство людей не знают о обычаяхinstall.php
Wyck