0

在 wordpress 中,我有自定义页面,并且在页面内部我试图调用特定类别的最新帖子。

这样做,我添加了这个来创建变量......

$cat = get_post_meta($post->ID, "mom_cat", true);   

在页面的自定义字段中,我添加了 mom_cat = (variable #)

在我的帖子中,我试图根据我放在自定义字段中的变量类别显示最近的帖子。我试过这个,但它没有用......

<?php
global $post;
$myposts = get_posts('numberposts=4&category=$cat' );
    foreach($myposts as $post) :
?>

然而那是行不通的。如何将变量添加到“category =”以根据我的自定义字段设置显示类别?

谢谢

4

1 回答 1

2

当 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;
}
?>
于 2012-05-04T16:43:18.747 回答