Мы все знаем, что существует множество плагинов и хаков, которые позволяют выполнять PHP в постах / страницах и боковых панелях.
Но как выполнить PHP в описании категории / тега в WordPress?
Я просто хочу разрешить коды PHP в описании категории / тега, чтобы их можно было отображать на страницах категории / тегов, например <?php echo category_description(); ?>
,
По умолчанию, когда category_description()
вызывается, он фильтруется по коду.
Но я предлагаю вам удалить фильтр, добавив их в functions.php темы. Попробуйте что-то вроде этого. Я использую это для тегов HTML
remove_filter( 'pre_term_description', 'wp_filter_kses' );
remove_filter( 'term_description', 'wp_kses_data' );
Самый простой способ без головной боли — использовать шорткод и отправлять все переменные в качестве атрибутов, например:
Описание категории: [php var1 = «33» var2 = «string» var3 = «array&массив&array «] содержимое шорткода [/ php].
А потом разбирать все $atts
и контент делает любой PHP, который вы хотите. Чтобы включить шорткоды в описании категории, используйте:
add_filter( 'category_archive_meta', function( $content ){
return apply_filters( 'the_content', $content );
});
Тестовый шорткод:
add_shortcode( 'php', function( $atts, $content ){
return sprintf(
"<pre><code>%s\n\n%s</code></pre>",
$content,
print_r( $atts, true )
);
});
И результат, используя пример описания выше: