3

実行前にコンテンツからギャラリーショートコードを削除することはでき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

4 に答える 4

6

これは比較的古い質問ですが、strip_shortcodes関数は機能します。

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

あなたが私に尋ねれば最も簡単な方法..

于 2012-09-28T19:58:03.017 に答える
5

変。remove_shortcode(コーデックスリンク)は2番目の引数を取りません。

ショートコードが削除されたコンテンツではなく、remove_shortcode関数のtrueまたはfalseのいずれかの戻り値を返します。

そこにある関数の2番目のバージョンで次のいずれかを試してください。

remove_shortcode('gallery');
return $content;

または単に置く

 remove_shortcode('gallery');

あなたのfunctions.phpファイルで。前のポスターは[]を含めることを提案しましたが、これは間違っていると思います。

于 2011-12-18T04:23:39.980 に答える
2

次のような部分文字列の置換を使用する必要があると思います。

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

この方法では、パフォーマンスが向上しないことに注意してください。

更新:コードを追加することで、function.phpのショットコードの登録を解除できます。

remove_shortcode('[gallery]');
于 2011-12-17T21:24:27.170 に答える
2

古い質問ですが、いくつか掘り下げて答えを組み合わせた後、これは私にとってうまくいきました:

<?php $content = get_the_content();

echo strip_shortcodes($content);?>

ギャラリーを挿入するだけで、削除して別々に表示したかったのです。明らかに、特定のショートコードを削除したい場合、これはあなたのための解決策ではないかもしれません。

于 2015-01-26T22:02:07.107 に答える