我想我理解你的问题,所以下面是我如何实现我认为你想要做的事情。
该函数的设置使您可以向其发送任何类别的slug或ID,以及希望从该类别中检索的帖子数量。
EDIT: 我删除了the_permalink()
因为我的意思是get_permalink()
但被错误地提到the_permalink()
相反
<?php function wpse_114835_cat_latest_post($cat = null, $posts = 1) {
//check for valid number of posts
if(!is_int($posts)) {
$posts = 1;
}
//set number posts
$args = array(
\'numberposts\' => $posts,
\'nopaging\' => 1
);
//check what kind of category info we were sent
if(isset($cat)) {
//category id
if(is_int($cat)) {
$args[\'cat\'] = $cat;
//category slug
} elseif(is_string($cat)) {
$args[\'category_name\'] = $cat;
}
}
//get posts specified
$cat_posts = get_posts($args);
//return posts object
return $cat_posts;
} ?>
您可以将该功能添加到主题的
functions.php
文件,然后您可以从模板文件中调用它,如下所示:
$art_posts = wpse_114835_cat_latest_post(\'art\');
.
Getting permalink: 要获取永久链接,请将post ID发送到get_permalink()
功能,如get_permalink($art_posts[0]->ID);
Getting excerpt: 摘录是post对象的一部分echo $art_posts[0]->post_excerpt;
如果要使用[...]
最后,或者通过主题或插件为摘录设置的任何过滤器来运行它,您需要a)将此帖子设置为新的全局$post
对象,以便可以使用以下方法the_excerpt()
或者b)创建您自己的摘录修改方法,该方法将精简并附加您想要的任何内容。
使用上面的HTML,您的模板将如下所示:
<div class="col-block-last">
<h2>
<span class="bold">art</span> <span class="font-condensed">blog</span>
</h2>
<?php $art_posts = wpse_114835_cat_latest_post(\'art\');
echo $art_posts[0]->post_excerpt; ?>
<a href="<?php echo get_permalink($art_posts[0]->ID); ?>">Read more</a>
</div>