2016-12-20 18 views
2

Вот простая функция фильтрации в WordPress.
Я понял основное направление этого кода, но одно не ясно. Я не прошел $content параметр в add_filter функция, но откуда она взялась?Откуда берутся действия или параметры фильтра?

Если WordPress поддерживает параметр по умолчанию, это нормально, тогда как узнать, какие параметры возможны для конкретного фильтра или события действия?

<?php 
    add_filter('the_content', 'prowp_profanity_filter'); 
    function prowp_profanity_filter($content) { 
    $profanities = array('sissy', 'dummy'); 
    $content = str_ireplace($profanities, '[censored]', $content); 
    return $content; 
} 
?> 

Спасибо.

ответ

1

the_content фильтр крюк расположен внутри the_content() функции, код определяется в wp-includes/post-template.php основной файл (начиная со строки 222):

/** 
* Display the post content. 
* 
* @since 0.71 
* 
* @param string $more_link_text Optional. Content for when there is more text. 
* @param bool $strip_teaser Optional. Strip teaser content before the more text. Default is false. 
*/ 
function the_content($more_link_text = null, $strip_teaser = false) { 
    $content = get_the_content($more_link_text, $strip_teaser); 
    /** 
    * Filters the post content. 
    * 
    * @since 0.71 
    * 
    * @param string $content Content of the current post. 
    */ 
    $content = apply_filters('the_content', $content); 
    $content = str_replace(']]>', ']]&gt;', $content); 
    echo $content; 
} 

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

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

Я надеюсь, что это ответит на ваш вопрос.

Также в Интернете вы можете легко найти список всех существующих крючков фильтра и крючков действий с их соответствующими параметрами.

0

LoïcTheAztec прав, я просто хотел бы добавить $content автоматически заполняется при срабатывании фильтра в функции (the_content).

apply_filters позволяет добавлять дополнительные аргументы и передавать их на крючки. Вы найдете более подробную информацию here