gnnkさん、こんにちは。
記述として、そう間違ってはいないようなので、考えられるとしたら、半角&がエスケープされて&としてテンプレートに記述されているくらいしか思いつきません。
絞り込みの方法ですが、query_postsの引数に配列形式でtag__andを用いると実現可能かと思います。
(下記は、カテゴリーテンプレート用の記述です。テーマのファイル構成に応じてis_categoryなどで分岐処理を行ってください。また、テンプレートの一番最初に記述いただくのが良いかと思います。)
$include_cats = explode( '/', $cat . get_category_children( $cat ) );
$args = array(
'category__in' => $include_cats,
'tag__and' => array( 12 )
);
query_posts( $args );
$wp_query->query_vars['cat'] = $cat;
上記ですが、
- まずは指定カテゴリの子孫カテゴリのIDを取得し、指定カテゴリも含めて配列にします。
- 次にquery_postsに渡す引数を生成、絞り込むタグのID(上記例では12)を指定し、query_postsを実行
- 最後にsingle_cat_titleが正しく働くように、$wp_query->query_vars['cat']に元々指定されていたカテゴリのIDを再代入
という処理内容です。