Почему add_filter () применяется дважды? - PullRequest
0 голосов
/ 05 апреля 2011
function replace_text_wps($text){
        $replace = array(
            // 'WORD TO REPLACE' => 'REPLACE WORD WITH THIS'
            'wordpress' => '<a href="#">wordpress</a>',
            'excerpt' => '<a href="#">excerpt</a>',
            'function' => '<a href="#">function</a>'
        );
        $text = str_replace(array_keys($replace),
    $replace, $text);
        return $text; }

    add_filter('the_content','replace_text_wps');
    add_filter('the_excerpt','replace_text_wps');

Этот код используется для замены некоторых слов, почему он дважды использует функцию add_filter (), он не прав?

Кроме того, что означает строка $text = str_replace(array_keys($replace), $replace, $text)?

Ответы [ 3 ]

1 голос
/ 05 апреля 2011
$text = str_replace(array_keys($replace), $replace, $text);

Эта строка ищет все ключи массива из $replace и заменяет их соответствующими значениями.

Это в основном более короткий / приятный способ для foreach($replace as $s => $r) $text = str_replace($s, $r, $text);

1 голос
/ 05 апреля 2011
add_filter('the_content','replace_text_wps');
add_filter('the_excerpt','replace_text_wps');

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

$text = str_replace(array_keys($replace), $replace, $text);

// 'WORD TO REPLACE' => 'REPLACE WORD WITH THIS'

Затем он просто заменяет строку: http://php.net/manual/en/function.str-replace.php

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

1 голос
/ 05 апреля 2011
$text = str_replace(array_keys($replace), $replace, $text);

Заменяет все указанные ключи на $ replace в текстовой строке $

этот код просто фильтрует две разные строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...