カテゴリIDから投稿タイプを見つけようとしています。
カテゴリページを開いているときに、
localhost/project/foobaar/category/pen
カテゴリ - ペンがついているポストタイプを知りたい。 "pen"と "copy"という名前のカスタム投稿タイプが2つあります。カテゴリペンがbookに関連付けられている場合は、投稿タイプを "book"として返します。カテゴリが鉛筆の場合も同様です。 「コピー」投稿の鉛筆カテゴリ。
私はこのようなことをしようとしていた(私は変数に格納されているカテゴリIDを持っているが、ペンのカテゴリIDが12であると仮定)
$args = array (
posts_per_page => 1,
category => '12' // category id of pen
);
$posts = WP_Query( $args );
そして$ postsから、私が知っているはずの1つの投稿を取得することができましたが、$ argsはデフォルトのpost_typeを 'posts'として使っていて、私の投稿は何でも構いません。
ありがとう
メインクエリーから最初の投稿を取得して、それがどの投稿タイプかを確認することができます。
if ( have_posts() ) {
$post_type = $wp_query->posts[0]->post_type;
}
メインのテンプレートファイルでこのコードを直接実行する場合は問題ありませんが、関数の場合は最初にglobal $wp_query;
を呼び出す必要があります。