web-dev-qa-db-ja.com

ショートコードの内側または外側だけでコンテンツを取得する方法

次のようなコンテンツがあるとします。

[xxx]
Here is some content in xxx 
[/xxx]

Here is content outside xxx ...

どうにかしてもらえますか

  1. [xxx]内のコンテンツのみ
  2. [xxx]以外の内容のみ
2
JM at Work

ショートコードに依存します。ショートコードのハンドラ関数にアクセスできる場合、その関数の2番目の引数はショートコード内のコンテンツです。

function wpse20136_shortcode( $atts, $content ){
  // $content has the content inside xxx
}

register_shortcode( 'xxx', 'wpse20136_shortcode' );

すべてのコンテンツをショートコードではないものにするのは簡単です。 strip_shortcodes()はそれをします:

strip_shortcodes( get_the_content() );

たとえば、現在の投稿のコンテンツを、ショートコードの内側にはないコンテンツだけで表示します。

3
John P Bloch