Intereting Posts
Могу ли я создать суперплагин с темой? Есть ли плагин для получения формы уведомления об удалении DMCA в WordPress? add_theme_support ('admin-bar') вызывает фатальную ошибку Отображать название персонализированного заголовка в виде текста, если миниатюра сообщения недоступна как создать сеть wordpress с несколькими установками wordpress Можно ли изолировать и использовать функции WordPress вне wordpress Предложения: Настраиваемые изображения заголовков и цвета стиля, которые различны для каждой страницы Напишите WP Query, который выбирает сообщения, которые являются частью одной и той же категории Список WordPress.org Блог на WordPress.com Размещение CSS / JS в верхнем или нижнем колонтитуле (inline) – попытка применить к нескольким шаблонам Задача Cron запускаться один раз в день с использованием внешней службы cron Условия, не указанные в wp_dropdown_categories Foreach внутри foreach как рисовать изображения без add_theme_support ('post_thumbnails') Ограничение страницы и перенаправление для отдельных уровней или пользователя

Допустимо ли рассматривать фильтр как действие?

Фильтр wp_insert_attachment_data доступен внутри wp_insert_attachment() . Он позволяет фильтровать данные вложения, чтобы они были отфильтрованы до того, как они будут обновлены или добавлены в базу данных.

 $data = apply_filters( 'wp_insert_attachment_data', $data, $object ); 

Мне не нужно менять данные сообщения, но мне нужно выполнить действие в этой точной точке выполнения. Допустимо ли подключить мою функцию к фильтру, выполнить некоторую обработку и затем вернуть $ data без изменений? Мне действительно нужно использовать $ data, но не нужно его менять. Например:

 function my_function( $data, $object ) { // Do some stuff with $data here. // No changes made to $data. Just return it. return $data; } add_filter( 'wp_insert_attachment_data', 'my_function', 10, 2 ); 

Хотя я считаю, что это решение будет работать для моей цели, я чувствую, что оно немного «хакерское» и противоречит цели фильтра wp_insert_attachment_data . Цель фильтра – изменить некоторую переменную. В моем случае я ничего не меняю.

Является ли это приемлемым или я должен попросить WordPress Trac добавить к нему действие?

Все действия на самом деле являются фильтрами внутри.

Так что да, вы можете делать что-то в фильтре. Однако помните, какие фильтры и что вы делаете. Некоторые фильтры запускаются повсюду, и выполнение дорогостоящих операций над ними может привести к значительным замедлениям. Также остерегайтесь рекурсии. Если ваша дорогая операция запускает самый фильтр, на который вы подключились.