Какие проблемы могут возникнуть, если я заменил add_filter и add_action на вызов функции

Я новичок в WordPress, и чтобы узнать больше о том, как создавать темы WordPress, я сейчас анализирую код загруженной темы и пытаюсь внести в нее некоторые изменения.

Две встроенные функции в WordPress – add_filter и add_action , и они оба добавляют что-то под названием HOOK к функциям. Поэтому, когда someFn функция someFn , после завершения вызова someFn вызывается все функции, зашифрованные с помощью someFn функций someFn .

Мой вопрос.

Что произойдет Если я просто вызвал функции точно перед закрывающей скобкой функции someFn (в конце функции) вместо использования add_filter и add_action (код функции 2 точно так же).

Может ли это вызвать какую-либо проблему для моего кода?

Я знаю, что есть некоторые функции (например, функция init ), хранящиеся в файлах WordPress, и я не должен их редактировать. Я просто говорю о том, чтобы рассказать о функциях темы.

Надеюсь, я правильно понял вас, поскольку ваш вопрос немного скремблирован

ЗАДНИЙ ПЛАН

Функции, как и ваш автомобиль, являются довольно бесполезными объектами до тех пор, пока они не будут использованы каким-либо образом. Простое определение в functions.php или в плагине делает функции полезными, как автомобиль, припаркованный в гараже, он есть, но ничего не полезен в данный момент времени.

Вот тут и появляются действия и фильтры. Ваша функция может быть подключена к некоторому фильтру или действию, где он может выполнять задание, сделать его полезным, это похоже на то, что вы сейчас работаете на своем автомобиле, и это стало полезным объектом. ( Функции могут быть вызваны непосредственно в шаблон, чтобы сделать его полезным )

Крюки имеют конкретные задачи

  • фильтры предназначены для изменения значения переменной, переданной как первый аргумент в функции обратного вызова, подключенной к фильтру

  • действия предполагают выполнение какой-то обязанности, заданной функцией обратного вызова, это может быть все, что попадает в сферу действия такого действия, как перенаправление на другую страницу или изменение переменных запроса внутри класса WP_Query

Крючки используются не только ядром, но и плагинами и темами. Основная цель любого крючка в любом сценарии – сделать что-то динамическое и редактируемое без необходимости напрямую изменять данный файл. Тема, плагин или ядро ​​могут быть изменены настраиваемым плагином без необходимости прямого изменения какой-либо части кода. Это, конечно, имеет огромные преимущества, когда дело доходит до обновления ядра, тем и плагинов

ТЕМАТИЧЕСКИЕ ФИЛЬТРЫ И ДЕЙСТВИЯ

Чтобы ответить на ваш вопрос напрямую, вам нужно взглянуть на следующее: создаете ли вы тему

  • для себя

  • для общественного пользования

Если вы создаете тему для себя и не намерены публиковать ее публично, вы можете отказаться от использования пользовательских фильтров и действий.

Вместо использования фильтров для фильтрации возвращаемого значения функции или переменной вы можете установить значение для некоторого желаемого статического значения. С другой стороны, вместо использования do_action() в ваших шаблонах вы можете просто вызвать функцию там, где это необходимо. Поэтому вместо того, чтобы делать следующее в шаблоне

 do_action( 'some_action' ); 

а затем в функциях

 add_action( 'some_action', 'some_function' ); function some_function() { echo 'Some custom text'; } 

вы можете просто просто выполнить следующие функции

 function some_function() { echo 'Some custom text'; } 

а затем вызывать функцию непосредственно в ваших шаблонах

 some_function(); 

Несмотря на то, что вы не собираетесь публиковать свою тему публично, по-прежнему весьма полезно использовать пользовательские фильтры и действия

Если вы намерены публично опубликовать тему, вы должны сделать пользователей и авторов детской темы огромной do_action() для фильтрации значений и путем использования do_action() чтобы они отвязали вашу функцию, а затем подключили их собственную функцию к действию ,

ЗАМЕТКА

Мы все, как правило, используем закрытие для удобства, но у них есть один огромный недостаток, они почти не снимаются, поскольку анонимные функции не имеют имен обратного вызова. Для тем, которые будут опубликованы публично, следует избегать закрытия, если вы не хотите, чтобы что-то было съемным. Вместо того, чтобы делать

 add_action( 'some_action', function () { echo 'Some value' }): 

скорее делать

 add_action( 'some_action', 'some_function' ); function some_function() { echo 'Some value'; } 

some_function() тема или плагин теперь могут удалить some_function() из действия с remove_action() а затем подключить / подключить его собственную пользовательскую функцию к some_action . Это невозможно сделать при использовании закрытий