根据类别ID获取最新帖子的第一段

时间:2015-01-27 17:25:39

标签: php wordpress

自从我使用PHP和WordPress以来已经有一段时间了,所以我有点生疏了。我想要做的是在WordPress网站的类别下显示最新帖子的开头段落。基于我做过的一些研究,我编写了这段代码:

<?php
$category_id = get_cat_ID('Downtown News');
$post = get_posts( $category_id );
if( !empty( $post ) ) {
    setup_postdata( $post );
    ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    <?php the_excerpt();
} ?>

<?php
$post = $wp_query->post;
setup_postdata( $post );
?>

我有代码来获取我想要的类别ID,并且我有代码来显示最新文章的第一段。但是,代码似乎不起作用。显示的内容是“未分类”类别的帖子下的第一段,这不是我想要的。如何修复我所拥有的内容以使其获得正确的类别?

2 个答案:

答案 0 :(得分:1)

您已在正确的位置开始:get_posts,但您没有正确的参数。所以尝试以下方法:

<?php 
$args = array(
    'category'         => 'CAT_ID_1,CAT_ID_2',
    'orderby'          => 'post_date',
    'order'            => 'DESC'); 

$posts_array = get_posts( $args );
?>

从功能参考中我们知道:

  

category参数必须是类别的ID,而不是   类别名称

表示您可以拥有一个或多个类别ID(以逗号分隔)。

可以找到所有参数的列表here

答案 1 :(得分:0)

我和你的问题有类似的问题,也许这个会对你有用

注意$category_idget_cat_ID()函数拉出,这告诉我你不知道cat_id,你可以转到你创建市中心新闻的类别,移动你的鼠标在它上面显示它将告诉你类别ID的URL地址,找到该数字并替换该行:

query_posts('cat='.$category_id.'&posts_per_page=1');

(以99为例)

query_posts('cat=99&posts_per_page=1');

<?php
global $post;
$category_id = get_cat_ID('Downtown News');
query_posts('cat='.$category_id.'&posts_per_page=1');
if ( have_posts() ) { 
      ?>
      <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
      <?php the_excerpt();
}
wp_reset_query();
?>