web-dev-qa-db-ja.com

カテゴリIDから投稿タイプを取得する方法

カテゴリ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'として使っていて、私の投稿は何でも構いません。

ありがとう

1
Aftab

メインクエリーから最初の投稿を取得して、それがどの投稿タイプかを確認することができます。

if ( have_posts() ) {
    $post_type = $wp_query->posts[0]->post_type;
}

メインのテンプレートファイルでこのコードを直接実行する場合は問題ありませんが、関数の場合は最初にglobal $wp_query;を呼び出す必要があります。

2
TheDeadMedic