Wordpress удаляет один шорткод из сообщений
Я хочу удалить только короткие коды [gallery]
в своих сообщениях в блоге. Единственное решение, которое я нашел, - это фильтр, который я добавил в свои функции.
function remove_gallery($content) {
if ( is_single() ) {
$content = strip_shortcodes( $content );
}
return $content;
}
add_filter('the_content', 'remove_gallery');
Он удаляет все короткие коды, включая [caption]
, которые мне нужны для изображений. Как я могу указать один шорткод для исключения или включения?
5
Author: CyberJunkie, 2012-02-25
2 answers
Чтобы удалить только шорткод галереи, зарегистрируйте функцию обратного вызова, которая возвращает пустую строку:
add_shortcode('gallery', '__return_false');
Но это будет работать только с обратными вызовами. Чтобы сделать это статически, вы можете временно изменить глобальное состояние wordpress, чтобы обмануть его:
/**
* @param string $code name of the shortcode
* @param string $content
* @return string content with shortcode striped
*/
function strip_shortcode($code, $content)
{
global $shortcode_tags;
$stack = $shortcode_tags;
$shortcode_tags = array($code => 1);
$content = strip_shortcodes($content);
$shortcode_tags = $stack;
return $content;
}
Использование:
$content = strip_shortcode('gallery', $content);
13
Author: hakre, 2013-12-27 11:23:51
Если вы хотите получить только контент, исключая любые короткие коды, попробуйте что-то подобное
global $post;
$postContentStr = apply_filters('the_content', strip_shortcodes($post->post_content));
echo $postContentStr;
-1
Author: Pablo S G Pacheco, 2013-01-10 19:46:22