私は私のホームページのためにget_the_content
のテキストだけをフィルタリングしようとしました、しかしそれは私のショートコードも含みます、なぜならそのページの最初の行グーグルマップ2番目の行テキストボックス私はビジュアルコンポーザーページビルダーを使っています。
私のコード
$content = get_the_content();
$content = apply_filters('the_content', substr(get_the_content(), 0, 60) );
$content = str_replace(']]>', ']]>', $content);
echo $content
私の結果
[vc_row] [vc_column] [vc_gmaps link =」#E-8_JTNDaWZyYW1lJTIwc3Jj
スクリーンショット
あなたが達成したいことを明確にしているあなたのコメントに基づいて、あなたはあなたの投稿の最初の60文字を表示したいと思います どんなショートコードも含まない .
これを行うには、strip_shortcodes()
関数を使うことができます。それに書き換えると、あなたのコードは次のようになります。
$content = strip_shortcodes(get_the_content());
$content = apply_filters('the_content', substr($content, 0, 60) );
$content = str_replace(']]>', ']]>', $content);
echo $content;
ここで行っているのは、最初の60文字にWordpressのフィルタを適用する前に、(get_the_content()
から)strip_shortcodes()
までのコンテンツを実行することだけです。
達成したいことや、このコンテンツを変更している他のプラグインに頼っているかどうかによっては、apply_filters()
呼び出しをスキップしても構いません - その場合は、$content
を次のように設定するだけです。あなたが欲しいsubstr()
。