- Описание функции
- Примеры использования
- Применение фильтрации текста
- Очистка HTML-кода от недопустимых элементов
- Разрешение определенных HTML-элементов и атрибутов
- Вопросы и ответы
- Какие HTML элементы и атрибуты разрешены в функции wp_kses()?
- Как добавить новые HTML элементы и атрибуты в список разрешенных в функции wp_kses()?
- Как удалить определенные HTML элементы и атрибуты из списка разрешенных в функции wp_kses()?
- Как использовать функцию wp_kses() для фильтрации контента в определенном контексте?
- Как добавить новые URL протоколы в список разрешенных в функции wp_kses()?
- Как изменить список разрешенных URL протоколов в функции wp_kses()?
- Как обрабатывать контент, содержащий вложенные HTML элементы, с помощью функции wp_kses()?
- Как обрабатывать контент, содержащий JavaScript код, с помощью функции wp_kses()?
- Как обрабатывать контент, содержащий стили CSS, с помощью функции wp_kses()?
- Связанные элементы
Описание функции
Функция wp_kses() фильтрует текстовое содержимое и удаляет недопустимые HTML-теги и атрибуты.
Функция использует список разрешенных HTML-элементов и атрибутов, переданный в качестве параметра, для фильтрации содержимого. Она также проверяет URL-протоколы и удаляет недопустимые ссылки.
Использование
wp_kses( string $content, array[]|string $allowed_html, string[] $allowed_protocols = array() ): string Функция wp_kses() принимает три параметра:
$content(обязательный) — текстовое содержимое для фильтрации.$allowed_html(обязательный) — массив разрешенных HTML-элементов и атрибутов, или имя контекста, такого как ‘post’. См. функциюwp_kses_allowed_html()для списка принимаемых имен контекстов.$allowed_protocols(необязательный) — массив разрешенных URL-протоколов. По умолчанию используется результат функцииwp_allowed_protocols(). Значение по умолчанию:array().
Функция возвращает отфильтрованное содержимое, содержащее только разрешенный HTML.
<?php
$content = '<script>alert("Hello World!")</script><p>This is a paragraph.</p>';
$allowed_html = array(
'p' => array(),
'a' => array(
'href' => array(),
'title' => array()
)
);
$filtered_content = wp_kses( $content, $allowed_html );
echo $filtered_content;
?> В этом примере мы имеем переменную $content, содержащую HTML-код с недопустимым тегом <script> и разрешенным тегом <p>. Мы также определяем массив $allowed_html, содержащий список разрешенных HTML-элементов и атрибутов.
Затем мы используем функцию wp_kses(), передавая ей переменную $content и массив $allowed_html в качестве параметров. Функция фильтрует содержимое и возвращает только разрешенный HTML.
Наконец, мы выводим отфильтрованное содержимое с помощью функции echo.
Примеры использования
Применение фильтрации текста
$content = 'This is some <strong>text</strong> with <script>alert("dangerous code")</script>';
$filtered_content = wp_kses($content, array(), array());
echo $filtered_content;
Результат:
This is some text with alert("dangerous code") Функция wp_kses() применяет фильтрацию к текстовому содержимому и удаляет недопустимый HTML-код. В данном примере, исходный текст содержит тег <strong> и <script>, который считается опасным. После применения функции wp_kses(), все недопустимые элементы и атрибуты удаляются, и остается только текст.
Очистка HTML-кода от недопустимых элементов
$content = '<div>This is a <strong>paragraph</strong> with <script>alert("dangerous code")</script></div>';
$allowed_html = array(
'div' => array(),
'strong' => array()
);
$filtered_content = wp_kses($content, $allowed_html, array());
echo $filtered_content;
Результат:
<div>This is a <strong>paragraph</strong> with alert("dangerous code")</div> В данном примере, исходный HTML-код содержит теги <div>, <strong> и <script>. С помощью функции wp_kses() мы указываем, что разрешены только теги <div> и <strong>. Поэтому, после фильтрации, тег <script> удаляется из кода.
Разрешение определенных HTML-элементов и атрибутов
$content = '<div class="container">This is a <strong>paragraph</strong></div>';
$allowed_html = array(
'div' => array(
'class' => array()
),
'strong' => array()
);
$filtered_content = wp_kses($content, $allowed_html, array());
echo $filtered_content;
Результат:
<div class="container">This is a <strong>paragraph</strong></div> В данном примере, исходный HTML-код содержит теги <div> и <strong>, а также атрибут class для тега <div>. С помощью функции wp_kses() мы указываем, что разрешены только теги <div> и <strong>, а также атрибут class для тега <div>. Поэтому, после фильтрации, весь код остается без изменений.
Вопросы и ответы
Какие HTML элементы и атрибуты разрешены в функции wp_kses()?
Функция wp_kses() фильтрует текстовый контент и удаляет недопустимые HTML элементы.
Для определения разрешенных HTML элементов и атрибутов, функция использует параметр $allowed_html. Этот параметр может быть массивом разрешенных элементов и атрибутов или именем контекста, таким как ‘post’. Список принимаемых имен контекста можно найти в функции wp_kses_allowed_html().
По умолчанию, функция wp_kses() использует список разрешенных элементов и атрибутов, определенный в функции wp_kses_allowed_html().
Как добавить новые HTML элементы и атрибуты в список разрешенных в функции wp_kses()?
Чтобы добавить новые HTML элементы и атрибуты в список разрешенных, можно использовать фильтр wp_kses_allowed_html. Этот фильтр позволяет изменять список разрешенных элементов и атрибутов перед их использованием в функции wp_kses().
Пример кода:
function custom_wp_kses_allowed_html( $allowed_html ) {
// Добавление нового элемента <custom-element>
$allowed_html['custom-element'] = array(
'class' => true,
'id' => true,
);
return $allowed_html;
}
add_filter( 'wp_kses_allowed_html', 'custom_wp_kses_allowed_html' );
Как удалить определенные HTML элементы и атрибуты из списка разрешенных в функции wp_kses()?
Чтобы удалить определенные HTML элементы и атрибуты из списка разрешенных, можно использовать фильтр wp_kses_allowed_html. Этот фильтр позволяет изменять список разрешенных элементов и атрибутов перед их использованием в функции wp_kses().
Пример кода:
function remove_wp_kses_allowed_html( $allowed_html ) {
// Удаление элемента <script>
unset( $allowed_html['script'] );
return $allowed_html;
}
add_filter( 'wp_kses_allowed_html', 'remove_wp_kses_allowed_html' );
Как использовать функцию wp_kses() для фильтрации контента в определенном контексте?
Функция wp_kses() используется для фильтрации текстового контента и удаления недопустимых HTML-элементов. Она принимает три параметра: $content (обязательный) — текстовый контент для фильтрации, $allowed_html (обязательный) — массив разрешенных HTML-элементов и атрибутов или имя контекста, такое как ‘post’, и $allowed_protocols (необязательный) — массив разрешенных URL-протоколов.
Пример использования функции wp_kses() для фильтрации контента в определенном контексте:
$content = 'Some <b>bold</b> text.';
$allowed_html = array(
'b' => array()
);
$filtered_content = wp_kses( $content, $allowed_html );
echo $filtered_content;
Результат:
Some <b>bold</b> text.
Как добавить новые URL протоколы в список разрешенных в функции wp_kses()?
Для добавления новых URL протоколов в список разрешенных в функции wp_kses() можно использовать фильтр ‘wp_kses_allowed_protocols’. Этот фильтр позволяет добавить новые URL протоколы или изменить существующие.
Пример добавления нового URL протокола в список разрешенных:
function custom_wp_kses_allowed_protocols( $protocols ) {
$protocols[] = 'custom-protocol';
return $protocols;
}
add_filter( 'wp_kses_allowed_protocols', 'custom_wp_kses_allowed_protocols' );
Как изменить список разрешенных URL протоколов в функции wp_kses()?
Для изменения списка разрешенных URL протоколов в функции wp_kses() можно использовать фильтр ‘wp_kses_allowed_protocols’. Этот фильтр позволяет изменить существующие URL протоколы или удалить ненужные.
Пример изменения списка разрешенных URL протоколов:
function custom_wp_kses_allowed_protocols( $protocols ) {
// Удаление протокола 'http' из списка разрешенных
unset( $protocols['http'] );
return $protocols;
}
add_filter( 'wp_kses_allowed_protocols', 'custom_wp_kses_allowed_protocols' );
Как обрабатывать контент, содержащий вложенные HTML элементы, с помощью функции wp_kses()?
Функция wp_kses() используется для фильтрации текстового контента и удаления недопустимых HTML элементов.
Для обработки контента, содержащего вложенные HTML элементы, необходимо передать массив разрешенных HTML элементов и атрибутов в качестве второго параметра функции wp_kses(). Этот массив должен быть сформирован в соответствии с правилами, описанными в функции wp_kses_allowed_html().
Пример использования функции wp_kses() для обработки контента с вложенными HTML элементами:
$content = '<div><p>Hello, <strong>world</strong>!</p></div>';
$allowed_html = array(
'div' => array(),
'p' => array(),
'strong' => array(),
);
$filtered_content = wp_kses( $content, $allowed_html );
Как обрабатывать контент, содержащий JavaScript код, с помощью функции wp_kses()?
Функция wp_kses() также может использоваться для обработки контента, содержащего JavaScript код.
Для обработки контента с JavaScript кодом, необходимо передать допустимые протоколы URL в качестве третьего параметра функции wp_kses(). Эти протоколы могут быть определены с помощью функции wp_allowed_protocols().
Пример использования функции wp_kses() для обработки контента с JavaScript кодом:
$content = '<script>alert("Hello, world!");</script>';
$allowed_html = 'post';
$allowed_protocols = array( 'http', 'https' );
$filtered_content = wp_kses( $content, $allowed_html, $allowed_protocols );
Как обрабатывать контент, содержащий стили CSS, с помощью функции wp_kses()?
Функция wp_kses() может быть использована для обработки контента, содержащего стили CSS.
Для обработки контента с CSS стилями, необходимо передать допустимые протоколы URL в качестве третьего параметра функции wp_kses(). Эти протоколы могут быть определены с помощью функции wp_allowed_protocols().
Пример использования функции wp_kses() для обработки контента с CSS стилями:
$content = '<style>body { background-color: red; }</style>';
$allowed_html = 'post';
$allowed_protocols = array( 'http', 'https' );
$filtered_content = wp_kses( $content, $allowed_html, $allowed_protocols );
Функция
wp_kses()является мощным инструментом для фильтрации и обработки контента в WordPress. Она позволяет удалить недопустимые HTML элементы, JavaScript код и стили CSS, обеспечивая безопасность и целостность контента.
Связанные элементы
- Функция
add_filter(): добавляет новый фильтр для указанного хука. - Функция
apply_filters(): применяет все фильтры, связанные с указанным хуком, к заданному значению. - Функция
do_action(): вызывает все функции, связанные с указанным хуком. - Функция
add_action(): добавляет новую функцию для выполнения при указанном хуке. - Функция
remove_filter(): удаляет указанный фильтр для указанного хука. - Функция
remove_action(): удаляет указанную функцию для указанного хука. - Хук
init: срабатывает при инициализации WordPress и используется для регистрации функций и фильтров. - Класс
WP_Hook: представляет хуки в WordPress и обеспечивает их управление.