Эта строка использует две разные функции, которые требуют двух отдельных объяснений.
__ ()
Это функция перевода. Если настройки выполнены правильно, он переведет первый параметр из списка предварительно переведенных строк. Если в установке есть файл с скомпилированным переводом для этой функции, он будет использовать его. Конечно, плагин должен упаковать свой перевод, отсюда и второй параметр. simplr-reg
говорит, __()
что перевод строки 'Please fill out this form to sign up for this site'
должен быть в файле перевода, связанном с 'simplr-reg'
(это делается ранее в плагине с помощью load_plugin_textdomain()
функции).
Затем функция возвращает перевод. Если нет перевода для возврата (например, текущий язык не имеет скомпилированного перевода, строка не имеет скомпилированного перевода для этого пакета и т. Д.), Возвращается исходный ввод.
Так что для сайта WordPress на английском языке, __( 'This', 'simplr-reg' )
это функционально так же, как 'This'
. Чтобы узнать больше о l10n (Локализация), прочтите об этом в кодексе:
http://codex.wordpress.org/I18n_for_WordPress_Developers
apply_filters ()
Эта функция позволяет вам при необходимости фильтровать значения, используемые плагином. Это одна из основных концепций, которую нужно понять разработчикам плагинов. WordPress расширяется с помощью хуков, которые в основном являются точками доступа, позволяющими вам определять время выполнения действий вашего плагина и / или манипулировать информацией / данными, которые использует WordPress, и т. Д.
Чтобы манипулировать данными, такими как фрагмент кода, о котором вы спрашивали, вы должны использовать функцию add_filter()
. Вот основной пример того, как это работает:
add_filter( 'simplr-reg-instructions', 'wpse16573_my_filter' );
Вы, вероятно, узнаете первый аргумент там. Это тот же самый, который использовался add_filter
выше. Это имя крючка. Второй аргумент - обратный вызов фильтра. Это должен быть действительный обратный вызов функции ( подробнее об обратных вызовах здесь ). Эта строка кода говорит: «Когда 'simplr-reg-instructions'
ловушка будет выполнена, запустите функцию с предоставленным мною обратным вызовом». apply_filters()
выполняет ловушку, найденную в первом аргументе, что означает «выполнить все функции, зарегистрированные для этой ловушки». apply_filters
затем передает все остальные аргументы (в данном случае 'Please fill out this form to sign up for this site'
) функциям этого фильтра. Итак, обратный вызов, который я использовал выше, должен выглядеть так:
function wpse16573_my_filter( $text ){
$text = "<strong>$text</strong>";
return $text;
}
В WordPress есть два типа хуков: фильтры (которые мы здесь используем) и действия. Основное различие между ними состоит в том, что фильтры ожидают, что вы что-то возвратите, а действия - нет. Итак, для этого фильтра мой пример выше добавляет html 'Please fill out this form to sign up for this site'
и возвращает его.
Подробнее о действиях и хуках читайте здесь:
http://codex.wordpress.org/Plugin_API
У вас есть две разные функции здесь
apply_filters
и__()
Функция apply_filters - это способ WordPress, позволяющий вам изменять / редактировать значения переменных, используя ваши собственные функции обратного вызова и
add_filter
функцию. он принимает много аргументов, но важными являются первые два:$ tag - это имя ловушки фильтра, которая используется,
add_filter
например, в:$ value - это фактическое значение, которое вы сможете изменить или отредактировать.
$ var - это переменные, которые может использовать ваша функция обратного вызова, одна или несколько.
__()
Функция используется для переводов:$ message - это фактическое сообщение для перевода.
$ text_domain - тег текстового домена, используемый для загрузки плагина или перевода темы с
load_plugin_textdomain()
что оно делает?
Он ищет в модуле локализации перевод $ message и передает перевод в оператор возврата PHP. Если перевод для $ message не найден, он просто возвращает $ message.
Таким образом, теперь две функции в вашем случае работают одинаково, apply_filters отправит любой функции обратного вызова, связанной с
simplr-reg-instructions
перехватом фильтра, переведенное значение (если существует) «Пожалуйста, заполните эту форму, чтобы зарегистрироваться на этом сайте», используя текст областьsimplr-reg
источник
apply_filters
является заполнителем, который позволяет вам перехватывать ваши собственные функции с помощьюadd_filter
, поэтому никакой add_filter не ожидается, если вы не добавите свои собственные