ショートコード内で、変数として使用する際に、使用できないタクソノミーがあることがわかった。
タクソノミーに-(マイナス)が含まれていると、ちゃんと単語として認識してくれない事態に遭遇。
【例1】
extract(shortcode_attsのarray内
左辺の関数名に-(マイナス)が含まれていると、get_postsで関数が認識されない。
【例2】
wp_get_categories
“”でくくる関数名に-(マイナス)が含まれていると、get_postsで関数が認識されない。
【対処方法】
-(マイナス)を含まないようにする。
エスケープシークエンスのようなもので、クリアできるのかも知れないが、対処方法は分からなかった。→既存のタクソノミー名(すでに、-(マイナス)が含まれているもの)では、対処できず。→タクソノミー名を変更するしかない。
【結論】
タクソノミー名やカスタムポスト名には、-(マイナス)を含まないようにする。
必要な場合は、_(アンダーバー)を用いる。
wordpress codex日本語版にそれに関係しそうな情報が書いてあった。
上記のページから引用。
ハイフン
参考: 以下で説明するハイフン (‘-‘) を使ったショートコードに関する動作は WordPress 3 以上にも当てはまります。これは do_shortcode() や get_shortcode_regex() のバグによるものかもしれません。ショートコードの名前にハイフンを使うときは注意してください。次の例では WordPress が2番目のショートコードを1番目と同じだと見る場合があります(WordPress は基本的にハイフンより前の部分を見ます):
[php]
[tag]
[tag-a]
[/php]
結果はどのショートコードが最初に定義されたかに完全に依存します。もしハイフンを使うつもりなら一番短いショートコードを最初に定義してください。これを避けるには下線を使うか、区切り文字なしにしてください:
[php]
[tag]
[tag_a][tag]
[taga]
[/php]
ショートコードの最初の部分がどれも異なっていれば、ハイフンを使っても問題ありません:
[php]
[tag]
[tagfoo-a]
[/php]
重要: ハイフンを使うと知らないうちに影響を与える可能性があります。もしインストールされた他のショートコードもハイフンを使っていると、ハイフンをつけた一般的な単語が衝突するかもしれません(同じリクエスト内で両方のショートコードが使われた場合):[php]
// plugin-A
[is-logged-in]// plugin-B
[is-admin]
[/php]