Очистка и дезинфекция php-кода в соответствии со стандартом кодирования WP

У меня есть несколько строк кода, которые мне нужно очистить в соответствии со стандартом кодирования 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 );
    }
    ?>

Очистка и дезинфекция php-кода в соответствии со стандартом кодирования WP

Вы неправильно используете функцию wp_kses(). Пожалуйста, прочитайте документация еще раз и соответствующим образом измените свой код.

cabrerahector 23.06.2019 20:24

Кроме того, поделитесь содержимым функции pf_show_link(), чтобы мы могли увидеть, что она делает.

cabrerahector 23.06.2019 20:26

@cabrerahector - Спасибо за быстрый ответ. У меня возникают трудности с размещением кода, так как я полностью новичок в коде. Не могли бы вы изменить этот код и поделиться. Спасибо

dignustech 24.06.2019 06:00

Функция выводит этот код: - <div class = "printfriendly pf-alignleft"><a href = "#" rel = "nofollow" onclick = "window.print(); return false;" class = "noslimstat" title = "Printer Friendly, PDF &amp; Email" data-wpel-link = "internal"><img style = "border:none;-webkit-box-shadow:none; box-shadow:none;" src = "https://cdn.printfriendly.com/buttons/printfriendly-but‌​ton.png" alt = "Print Friendly, PDF &amp; Email"></a></div>

dignustech 24.06.2019 06:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не уверен, что вам вообще следует использовать здесь 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);

Другие вопросы по теме