特定のカスタム投稿タイプがデフォルトのアーカイブページまたは検索結果に表示されるかどうかを判断する方法はありますか?
例えば(ひどい)booksという名前の投稿タイプを考えると、コードでを伝える方法があります以下のいずれか
これらにカスタム投稿タイプを表示する方法を知っていますが、私は少し掘り下げることを行っていて、特定のカスタム投稿タイプが上記のいずれかに表示されるかどうかを判断する明確な方法を見つけることができません。
私がこれを探している主な理由は、テーマのカスタムブレッドクラムバーを作成しているからです。そして、表示されているカスタム投稿が著者の機能をサポートしている場合は著者ブレッドクラムバーを表示できるといいですねとが著者アーカイブに表示されます。
あなたは 投稿タイプオブジェクト を取得し、そのプロパティをチェックすることができます。例えば:
$post_type = get_post_type_object( 'books' );
if( $post_type->exclude_from_search ) {
// The post type is not included in search results
}
if( $post_type->has_archive ) {
// The post type has archive
}
私が知っている限りでは、カスタム投稿タイプは、あなたがそれをコーディングしなければ日付アーカイブや作者アーカイブには含まれません(例えば pre_get_posts
を使う)。つまり、投稿タイプを登録している間は、これらのオプションは使用できません。そのため、投稿タイプのオブジェクトから確認する方法はありません。
あなたが前面にいる場合、テンプレートでは is_post_type_archive( $post_types )
コンディショナルタグ関数を使うことができます。 $post_types
は、チェック対象の投稿タイプのstring
またはarray
です。