Wordpressにすべてのツールが用意されている場合は、カスタムフィールドを使用してカテゴリを定義するべきではありません。あなたがすべきことは、あなたのカスタム投稿が登録されている場所を見つけて、追加することです:
'taxonomies' => array('category')
...引数配列に。これにより、カスタム投稿に必要なカテゴリを確認できます。カスタム投稿タイプが登録されている場所が見つからない場合は、代わりにこれをfunctions.phpファイルに追加します。
add_action('init', 'add_category_to_custom');
function add_category_to_custom()
{
register_taxonomy_for_object_type('category', 'custom_post_name');
}
次に、次のようにカスタム投稿を参照できます。
$posts = get_posts(array('numberposts' => 4, 'category' => $cat_ID, 'post_type' => 'custom_post_name'));
更新:ページを使用してカテゴリ情報を表示することはお勧めしませんが、あなたには理由があると確信しています。カテゴリIDの1つが変更されると、多くの問題が発生する可能性があるため、カスタムフィールド内にカテゴリIDを配置することは避けます。
あなたの場合に私がアドバイスするのは、それらの特定のページに、それらの一致するカテゴリとまったく同じ名前を付けることです。次に、次のようなことを行います。
<?php
/*
IF THE PAGE HAS A MATCHING CATEGORY,
DISPLAY 5 OF THE MOST RECENT POSTS IN THAT CATEGORY
*/
if($catID = get_cat_ID(get_the_title(get_the_ID())))
{
$posts = get_posts(array('numberposts' => 5, 'category' => $catID));
foreach($posts as $post) : setup_postdata($post);
?>
<!-- POST HTML GOES HERE -->
<?php
endforeach;
}
?>