регистрация восстановление пароля
Все регионы, все города Все регионы, все города

VIP Объявления

ФИЛЬТР HTML В ЗАПИСЯХ для WORDPRESS

ФИЛЬТР HTML В ЗАПИСЯХ для WORDPRESS
Описание:

ФИЛЬТР HTML В ЗАПИСЯХ для WORDPRESS

 

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

 Примерно так:

При импорте<p> данных из XML файлов<br> часто<p> возникают<p> проблемы с<br> отображением тексто<p>в на экране, а именно выводятся<br> не нужные и неуместные html<p> теги форматирования<br> текста<p>.

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

Так как записей более 30000 соответственно руками чистить каждый пост не вариант. Поэтому создадим фильтр. Идею этого фильтра подал автор статьи WORDPRESS. ФИЛЬТРУЕМ HTML В ЗАПИСЯХ И КОММЕНТАРИЯХ - ОЛЬГА ФОМИНА.

С помощью специального фильтра WordPress, мы сможем нормально отображать тексты в записях.

 

Фильтры WordPress

Из Кодекса:

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

 

Итак, мы создадим специальный фильтр, который будет отыскивать контент, в нашем случае не нужные html теги и конвертировать код, прежде чем отображать его на экране.

 

Специальный WordPress HTML фильтр

Вот так выглядит код фильтра:

 

function special_filter($content_text) {

    $content_text = str_ireplace('br&gt;', '<p>', $content_text);

                $content_text = str_ireplace('&lt;', '', $content_text);

    return $content_text;

}

add_filter('the_content','special_filter', 1, 1);

 

Теперь, давайте разберем код на части. Сначала мы создаем новую функцию, под названием - special_filter

 

function special_filter ($content_text) {

    <!-- function actions -->

    }

Далее, мы описываем, что будет делать функция. В нашем примере, мы используем PHP-функцию str_ireplace (), регистронезависимый вариант функции str_replace(), которая будет отыскивать тег br> (спецсимвол в html - br&gt; ), а так как функция регистронезависимая – то и тег BR> будет найден и заменен на <p>.

В следующей строке функция находит &lt; - это знак "меньше чем" (начало тега) и меняет его на - '', а точнее ни на что не меняет, остается просто пустое место.

 

Маленькое отступление для более понятного восприятия функции str_ireplace () и str_replace ():

str_replace ('что менять', 'на что менять', $куда передавать результат),

 

Последняя часть функции возвращает значение (результат) функции, чтобы мы могли его использовать:

return $content_text;

Теперь, нам нужно внедрить наш фильтр в WordPress, так, чтобы он срабатывал в определенное время. В нашем случае, прикрепим указанную PHP функцию к указанному фильтру.

 

add_filter('the_content',' special_filter', 1, 1);

 

add_filter прикрепляет указанную PHP функцию к указанному фильтру. Функция the_content, возвращает и выводит на экран отформатированный контент записи. Поэтому, в нашем случае, мы сообщаем вордпрессу, о том, что наш фильтр (special_filter) нужно использовать совместно с функцией the_content.

Первая единица в коде, говорит WordPress, о том, что фильтр имеет высокий приоритет и должен быть выполнен раньше любых, других фильтров. Вторая единица говорит WordPress, о том, что мы передаем нашему фильтру только 1 параметр.

 

Установка Фильтра

Откройте ваш файл functions.php (расположен в папке с вашей темой), и вставьте туда следующий код:

 

function special_filter($content_text) {

    $content_text = str_ireplace('br&gt;', '<p>', $content_text);

                $content_text = str_ireplace('&lt;', '', $content_text);

    return $content_text;

}

add_filter('the_content','special_filter', 1, 1);

 

Данный фильтр использован для конкретного случая. Вы сможете самостоятельно подстроить его для своих целей. К примеру -  удалить из текста спецсимволы ? / \ ! .

 

Например, с помощью такого набора:

$content_text = str_replace('&amp;', '&', $content_text);

$content_text = str_replace ('<![CDATA[', '', $content_text);

$content_text = str_replace(']]>', '', $content_text);

$content_text = str_replace('delivery', '', $content_text);

$content_text = str_replace('attention', '', $content_text);

$content_text = str_replace('&lt;', '', $content_text);

$content_text = str_replace('/&gt;', '', $content_text);

$content_text = str_replace('&gt;', '', $content_text);

$content_text = str_replace('?', '', $content_text);

 

Или такого, где происходит подмена адресов, актуально в текстах, где есть много ссылок:

 

$content_text = str_ireplace('domen.ru', 'domen.com', $content_text);

$content_text = str_ireplace('/domen.ru', 'domen.com', $content_text);

 

Экспериментируйте и успехов.

Категория Интернет
РегионВсе регионы
Город/населенный пунктВсе города
Дата размещения16.05.2019
Количество просмотров19
Статью добавил пользователь demon
Выберите действие:
Пожаловаться на публикацию
Еще статьи из данной категории
Предыдущие статьи Следующие статьи
  • нет
Комментарии к публикации
Комментариев к публикации нет...