カスタム投稿タイプを正しいパラメータで登録しました。つまり、'taxonomies' => array('post_tag','category')
を追加したということです。
私もregister_taxonomy_for_object_type('post_tag', 'custom-post-type-name');
を使ってみました
私はfunctions.phpにカスタム関数を持っていて、に沿って条件付きで基本ループをロードしています。
function child_maybe_do_grid_loop() {
if( is_tag() || is_category() || is_archive {
require(CHILD_DIR.'/custom-tag.php');
}
}
Custom-tag.phpの内容は非常に基本的なループです
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php the_permalink(); ?>" title="<?php the_title(); ?>
<?php endwhile; ?>
<?php else : ?>
<h2 class="center">Not Found</h2>
<?php endif; ?>
これは通常の投稿/ページタグではうまくいきますが、カスタム投稿タイプのタグでは「見つかりません」と表示されます。
何か案は?通常の単純なループはカスタム投稿タイプのタグアーカイブで動作するはずですか、それとも追加の条件/クエリをそこに入れる必要があるのでしょうか。
** toschoのコメントを更新してデバッグを有効にしました。デフォルト投稿を通して作成された作業タグページと比較すると、カスタム投稿タグのデバッグはまったく同じです。
同じタグにカスタム投稿を追加していくと、count => 2と表示されることさえありますが、それでもページは何も返すことを拒否しています。
うさぎの穴を下って.....修正を見つけました。
この投稿から 日付と分類法によるカスタム投稿タイプアーカイブ
これは私にこのtracチケットをさせてくれます http://core.trac.wordpress.org/ticket/14589
そして以下
function post_type_tags_fix($request) {
if ( isset($request['tag']) && !isset($request['post_type']) )
$request['post_type'] = 'any';
return $request;
}
add_filter('request', 'post_type_tags_fix');
多分これは3.1にそれをしなかったか。
あなたは条件文の前にループを実行する必要があります。
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php if( is_tag() || is_category() || is_archive { ?>
<?php the_permalink(); ?>" title="<?php the_title(); ?>
<? } else { ?>
//do something else
} ?>
<?php endwhile; ?>
<?php else : ?>
<h2 class="center">Not Found</h2>
<?php endif; ?>