web-dev-qa-db-ja.com

タグページにカスタム投稿タイプを含めるにはどうすればよいですか。

カスタム投稿タイプを使用していますが、通常の投稿と一緒にタグページに表示されないため、標準またはカスタムの両方の投稿タイプをタグページまたはカテゴリページに含めます。

すべての投稿を含めるには、ループの前に何が必要ですか。 (カスタムタイプを含む).

更新:
付け加えると、私はこのコード をここ で見つけました。これは最初の部分では完全に機能しました。

add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
  if ( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
    $post_type = get_query_var('post_type');
    if($post_type)
        $post_type = $post_type;
    else
        $post_type = array('post','cpt'); // replace cpt to your custom post type
    $query->set('post_type',$post_type);
    return $query;
    }
}

2番目の質問はまだ残っています:

読者が投稿タイプでフィルタリングできるようにする方法はありますか?

そのため、以下のどちらでもうまくいきます。

  • example.com/tag/blue?post_type=custom
  • example.com/tag/blue?post_type=post
4
user3903
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');

好みに合わせて投稿タイプを変更できます。この投稿から。 カスタム投稿タイプのタグアーカイブは基本的なループでは動作しませんか?

4
Wyck

2番目の部分に答えるために、構文は次のとおりです。

example.com/tag/blue?post_type[]=custom
example.com/tag/blue?post_type[]=post

または複数の種類の場合:

example.com/tag/blue?post_type[]=custom&post_type[]=post
0
majick