У меня есть несколько строк кода, которые мне нужно очистить в соответствии со стандартом кодирования WP, используя такие функции, как esc_html, wp_kses() и т. д. (https://developer.wordpress.org/reference/functions/wp_kses/). Этот код создает кнопку печати на странице сведений о публикации. Проблема в том, что я не могу понять, как правильно использовать функцию wp_kses, чтобы показать кнопку на странице. Может ли кто-нибудь помочь мне здесь? Я новичок в php. Заранее спасибо!
Код в файле
<!-- printer friednly link -->
<?php if (function_exists('pf_show_link')){echo pf_show_link();} ?>
Код, который я пытаюсь добавить, не выводит ни одной кнопки
<!-- printer friednly link -->
<?php
if ( function_exists( 'pf_show_link' ) ) {
$allowed_tags = array(
'strong' => array(),
'a' => array(
'href' => array(),
'title' => array(),
),
);
echo wp_kses( $allowed_tags );
}
?>
Кроме того, поделитесь содержимым функции pf_show_link()
, чтобы мы могли увидеть, что она делает.
@cabrerahector - Спасибо за быстрый ответ. У меня возникают трудности с размещением кода, так как я полностью новичок в коде. Не могли бы вы изменить этот код и поделиться. Спасибо
Функция выводит этот код: - <div class = "printfriendly pf-alignleft"><a href = "#" rel = "nofollow" onclick = "window.print(); return false;" class = "noslimstat" title = "Printer Friendly, PDF & Email" data-wpel-link = "internal"><img style = "border:none;-webkit-box-shadow:none; box-shadow:none;" src = "https://cdn.printfriendly.com/buttons/printfriendly-button.png" alt = "Print Friendly, PDF & Email"></a></div>
Я не уверен, что вам вообще следует использовать здесь wp_kses. Если вы тот, кто генерирует этот HTML-вывод с помощью функции, вам не нужно дезинфицировать. В любом случае, если вы действительно этого хотите, вы должны перечислить используемые вами html-теги все (а также div
, img
...) и атрибуты все внутри этих тегов (style
, src
, onclick
...). Попробуйте так:
$allowed_tags = array(
'div' => array(),
'img' => array(
'style' => array(),
'src' => array(),
'alt' => array()
),
'strong' => array(),
'a' => array(
'href' => array(),
'title' => array(),
'rel' => array(),
'onclick' => array(),
'class' => array(),
'data-wpel-link' => array()
),
);
echo wp_kses(pf_show_link(), $allowed_tags);
Вы неправильно используете функцию
wp_kses()
. Пожалуйста, прочитайте документация еще раз и соответствующим образом измените свой код.