当 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'));
更新:我不建议使用 Pages 来显示类别信息,但我相信你有你的理由。我仍然会避免在自定义字段中放置类别 ID,因为如果您的类别 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;
}
?>