Wordpress удалить шорткод из контента - PullRequest
3 голосов
/ 17 декабря 2011

Можно ли удалить шорткод галереи из контента до того, как будет выполнен the_content()? Я искал кодекс и нашел remove_shortcode( $tag ), но они не показывают примеров.

Я пытался добавить к функциям

function remove_gallery($content) {
    $content .= remove_shortcode('[gallery]');
    return $content;
}
add_filter( 'the_content', 'remove_gallery', 6); 

Не работает ..

Обновление:

Мне удалось отменить регистрацию шорткода, используя приведенный ниже код, но он также удаляет содержимое

function remove_gallery($content) {
    return remove_shortcode('gallery', $content);
}
add_filter( 'the_content', 'remove_gallery', 6); 

Ответы [ 4 ]

6 голосов
/ 28 сентября 2012

Я знаю, что это относительно старый вопрос, но функция strip_shortcodes работает!

global $post;
echo strip_shortcodes($post->post_content);

Самый простой способ, если вы спросите меня ..

5 голосов
/ 18 декабря 2011

Странно. remove_shortcode ( ссылка на кодекс ) не принимает второй аргумент.

Вы возвращаете либо истинное, либо ложное возвращение функции remove_shortcode, а не содержимое с удаленным шорткодом.

Попробуйте что-нибудь подобное во второй версии вашей функции:

remove_shortcode('gallery');
return $content;

или просто поставить

 remove_shortcode('gallery');

В вашем файле functions.php. Предыдущий постер предлагал включить [], что, я думаю, неправильно.

2 голосов
/ 27 января 2015

Старый вопрос, но после некоторого поиска и комбинации ответов это сработало для меня:

<?php $content = get_the_content();

echo strip_shortcodes($content);?>

Я вставлял только галереи, которые я хотел удалить и отобразить отдельно. Очевидно, что если вы хотите удалить определенный шорткод, это может не быть решением для вас.

2 голосов
/ 18 декабря 2011

Я думаю, что вы должны использовать замену подстроки следующим образом:

function remove_gallery($content) {
    return str_replace('[gallery]', '', $content);
}
add_filter( 'the_content', 'remove_gallery', 6); 

Имейте в виду, этот метод не обеспечивает хорошую производительность.

update :Вы можете отменить регистрацию кода выстрела в файле function.php, добавив код:

remove_shortcode('[gallery]');
...