Пишу плагин с таким кодом:
Class MY_CLASS {
//codes
}
Global $myclass;
$myclass = New MY_CLASS ();
Могу ли я использовать этот класс после установки и активации плагина в других плагинах, не включая файл myclass.php? Например, в другом плагине:
Global $myclass;
$myclass->a = 'dog';
Отлично! Просто добавлю, что если вы создаете плагин, который можно расширять с помощью надстроек, они могут быть в ООП.
Plug-in 2
Технически это возможно. Но я бы использовал немного другой подход. Если ваш второй плагин загружается первым, вы получаете ошибку. Если вы хотите заменить класс в другом плагине, это трудно сделать.
Так что подключитесь к
plugins_loaded
с определенным приоритетом, чтобы создать объект, и используйте объект во втором плагине на том же хуке с более низким (более поздним) приоритетом:Плагин 1
Плагин 2
Обратите внимание на 10 и 11 в
add_action ()
. Это гарантирует, что ваш второй плагин никогда не будет работать до первого. Он все еще должен проверить, если первый плагин активен и работает. Теперь вы можете даже заменить класс в другом плагине:Плагин 3
В любом случае, я бы лично использовал приоритет 9, потому что 10 является стандартным, а аргумент необязательным.
Только основной файл плагина будет включен автоматически. Так что, если ваш плагин структурирован так:
wp-content/plugins/my-plugin/
my-plugin.php
my-class.php
Только
my-plugin.php
будет включен в WordPress. Вы можете убедиться, что MyClass доступен для других, включивmy-class.php
из вашего файлаmy-plugin.php
.