Экранирование пользовательских функций WordPress - PullRequest
0 голосов
/ 28 сентября 2019

Я хотел бы знать, как избежать или очистить более сложные пользовательские функции в WordPress.По сути, я пытаюсь соответствовать стандартам безопасности + исправить «Предупреждения» из плагина анализатора тем.

Например: «Все выходные должны выполняться через экранирующую функцию (см. Разделы« Безопасность »в Руководствах по WordPress для разработчиков), найдено ...».Это общее предупреждение, и мне удалось исправить большинство из них в моей теме, однако проблема в том, что для некоторых пользовательских функций (обычно вызываемых в цикле) он удаляет все и отображает все теги HTML с содержимым, дляпример:

Не экранировано: Это вывод дурацкой функции, нет экранирования
Экранировано: <p>This is a wacky function output, <span>there is no escape</span></p>

Вот одна из многих функций, которые я хочу экранировать / дезинфицировать:

Функция:

function testwp_post_navigation() {
    $args = array(
        'post_type' =>'post',
        'tax_query' => array(
            array(
            'taxonomy' => 'post_format',
            'field' => 'slug',
            'terms' => array( 
                'post-format-quote',
                'post-format-link',
                'post-format-image',
                'post-format-status',  
            ),
            'operator' => 'NOT IN',
            ),
        )
    );
    $nav = '<div class="post-nav">';
    $prev = get_previous_post_link( '<div class="post-link-nav">%link</div>', '%title', $in_same_term = false,  $excluded_terms = $args,  $taxonomy = 'category' ); 
    $nav .= '<div class="__post-prev">' . $prev . '</div>';
    $next = get_next_post_link( '<div class="post-link-nav">%link</div>', '%title', $in_same_term = false,  $excluded_terms = $args,  $taxonomy = 'category');
    $nav .= '<div class="__post-next">' . $next . '</div>';
    $nav .= '</div>';
    return $nav;
}

Вызов:

<?php echo testwp_post_navigation();?>

Как вы можете видеть, анализатор темы просит меня запустить "testwp_post_navigation" в функции экранирования, но это просто показывает необработанные данные, как объяснено выше.Попытка избежать $ prev и $ next тоже не работает, какие-нибудь советы, как мне это исправить?

Спасибо.

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