質問: null ) { extract( shortcode_atts( array( 'class' => '', ), $atts ) ); return '' . do_shortcode( $content ) . ''; } add_shortcode( 'div', 'shortcode_func' ); というコードを入れていますが、これでは一つのショートコードしか有効になりません。 自分でも調べましたが、素人同然なので限界です。 どうすればいいのでしょうか。 できればコードを示していただけると助かります。 よろしくお願いします。
回答: 追記依頼コメントを書いてから マニュアル ( https://wpdocs.osdn.jp/%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89_API ) を読んでいたら、 > > しかしショートコードマクロが同じ名前のマクロをもうひとつ囲むように使用するとパースに失敗します: > > これは do_shortcode() で使われる文脈自由正規表現パーサーの制限によるものです。このパーサーはとても高速ですが入れ子のレベルを数えることができません。そのためこの場合にはそれぞれの開始タグを正しい終了タグとマッチさせることができません。 > > > と書かれていました。 同じ名前のショートコードは、階層化した場合に開始タグと終了タグのマッチができない制限事項があるようです。