web-dev-qa-db-ja.com

The_contentのテキストだけをフィルタリングする

私は私のホームページのために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

スクリーンショット

enter image description here 

1
Mohamed Rihan

あなたが達成したいことを明確にしているあなたのコメントに基づいて、あなたはあなたの投稿の最初の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()

1
Tim Malone