Задать вопрос
@habrdima

Как разделить функции php плагина и темы в wordpress?

Если в теме и в плагине есть функция с одним и тем же названием то сайт не загружается, хотя может я чего то не знаю, решить можно если изменить название функции, но это плохое решение, есть еще оператор namespace, но пока я его не очень понимаю, есть еще способы? или надо разбираться с name space
  • Вопрос задан
  • 110 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
maksym1991
@maksym1991
WordPress adept
Обычно делают проверку в файлах темы
if ( !function_exists( 'some_function' ) ) {
    function some_function() {
        //код
    }
}
Ответ написан
Комментировать
MedVedar
@MedVedar
e-commerce developer
В вашем случае используйте неймспейсы или добавляйте к именам функций в теме и плагине свои префиксы. Далее, в теме, делайте проверку подключен ли ваш плагин и какая версия. Если плагин подключен, то вызывайте функцию из него, если нет - из темы.

Если вам так не хочется это делать, то оберните свои функции в проверку ее наличия:

if ( ! function_exists('моя_супер_пупер_функция') ) {
    function моя_супер_пупер_функция() {
        ...
    }
}

https://secure.php.net/manual/en/function.function...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Плохое решение называть функции одинаково, если они делают разные вещи. Можно добавить некий префикс к названию функции
Ответ написан
san_jorich
@san_jorich
Творческий кодер
Также плохим решением можно считать прописку своих функций в function.php вашей темы если она не дочерняя. В случае обновления все слетит. Припишите свои функции плагином, с префиксом его названия: Например Plugin Name: someone_plugin и функции function sp_function_1 и т.д. Тогда все будет намного стабильнее )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы