个性化阅读
专注于IT技术分析

使用wp_get_recent_posts

我正在编写自己的主题, 并且在侧栏中我想列出三个带有特定标签(“功能”)的帖子的详细信息。最初, 我尝试了以下方法:

$args = array(
    'posts_per_page' => 3, 'tag' => 'featured'); 

$recent_posts = wp_get_recent_posts($args);
foreach( $recent_posts as $post ){
    ...
}

但这没有用, 相反, 我只有一条帖子, 没有标签(本例中为最新帖子)。

我也尝试过使用数字帖子, 只是尝试列出带有标签的帖子, 指定更多参数, 并尝试定位类别而不是标签, 但这些标签对我都没有用, 结果在没有列表的情况下, 只有一篇帖子, 有时是全部。

理想情况下, 我想继续使用wp_get_recent_posts, 因为它要简单得多, 并且绝对是适合该工作的功能。因此, 我想针对这个问题继续说明为什么我无法正确使用该功能, 而不是使用get_posts或直接查询的替代解决方案。


#1


我没有遇到同样的问题, 尽管我没有试图通过标签来限制。这是我固定的方法。至少在我的Wordpress版本中, 查看wp_get_recent_posts(在/wp-includes/post.php中)的实际函数签名显示:

function wp_get_recent_posts($num = 10)

当然, 这与Wordpress Codex所说的有所不同。但是, 当我使用wp_get_recent_posts(5)调用该函数时, 实际上得到了5个最新的帖子。

因此, 使用此功能似乎无法实现你想做的事情。


#2


可能并不容易, 因为函数参考未显示任何标签参数:http://codex.wordpress.org/Function_Reference/wp_get_recent_posts

可能还需要使用is_tag进行进一步选择:http://codex.wordpress.org/Function_Reference/is_tag


#3


在WP 3.9.2中, 我具有以下工作功能:

function posts_by_tag($tag, $numberposts = 0) {

    $args = array( 'numberposts' => $numberposts, 'post_status' => 'publish', 'tag' => $tag );
    $recent_posts = wp_get_recent_posts( $args );

    foreach( $recent_posts as $recent ){
            $posts = $posts . '<a href="' . get_permalink($recent["ID"]) . '">'
                    . $recent["post_title"]
                    . get_the_post_thumbnail($recent["ID"], "full")
                    . '</a>';
    }
    return $posts;

}


#4


好的, 因为似乎没有答案, 所以我使用get_posts编写了一种以完全相同的方式工作的解决方案。我仍然不知道wp_get_recent_posts在做什么。


#5


是!你可以在传递给wp_get_recent_posts()的属性中使用带有标签slug的tag参数, 以对该标签进行过滤。这似乎是完全没有记录的。例:

$args = array('tag' => 'my-tag-slug');
$recent_posts = wp_get_recent_posts($args);
赞(0)
未经允许不得转载:srcmini » 使用wp_get_recent_posts

评论 抢沙发

评论前必须登录!