自从我使用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,并且我有代码来显示最新文章的第一段。但是,代码似乎不起作用。显示的内容是“未分类”类别的帖子下的第一段,这不是我想要的。如何修复我所拥有的内容以使其获得正确的类别?
答案 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_id
被get_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();
?>