我正在编写自己的主题, 并且在侧栏中我想列出三个带有特定标签(“
功能”
)的帖子的详细信息。最初, 我尝试了以下方法:
$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【使用wp_get_recent_posts】好的, 因为似乎没有答案, 所以我使用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);
推荐阅读
- 在WordPress中使用wp_mail()代替mail()不起作用
- 万字长文带你漫游数据结构世界
- JAVA中的“+”“concat”和“append”
- Excel 怎么用 vlookup 来查找两个表的重复数据(!)
- JAVA中“(”的用法详解)
- java判断包含关系contains方法的使用
- Java NIO Channel 使用
- 万字长文玩转Spark面试: 进大厂必看!
- html笔记