Я хотел бы знать, как избежать или очистить более сложные пользовательские функции в 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 тоже не работает, какие-нибудь советы, как мне это исправить?
Спасибо.