我对php还是比较陌生的(不要进一步调整一些代码) 所以我想要的是每个类别(类别ID 1(未分类)除外) 我想要类别网址+类别名称 对于类别中的每个帖子,我都希望url +标题(最多循环3次)
我到目前为止所拥有的是:
<div class="divs">
<div class="divs">
<div class="divs">
<h3 class="divs">
<a href="<?php echo get_category_link( "5" );?>">
<?php echo get_cat_name(5);?>
</a>
</h3>
</div>
<div class="divs">
<ol>
<?php
$args = array('category' => 5, 'post_type' => 'post');
$postslist = get_posts($args);
$i = 0;
foreach ($postslist as $post) : setup_postdata($post);{if(++$i > 3) break;}
?>
<li>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
<?php endforeach; ?>
</div>
</div>
</div>
</ol>
这确实满足了我的要求,只是它仅针对课程ID 5。有没有一种简单的方法可以使所有类别的循环都如此?
编辑: 基本上,我希望代码能够遍历所有类别,而不只是针对类别5(我们添加/删除类别,因此对数字进行硬编码没有用)
答案 0 :(得分:0)
这应该有效
<?php
$args = array( 'category__and' => array(2, 3, 4, 5), 'post_type' => 'post' );
$i = 0;
$postslist = get_posts( $args );
foreach ($postslist as $post) {
setup_postdata($post);
if (++$i > 4) break;
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php } ?>
答案 1 :(得分:0)
由于您不想对类别ID进行硬编码,因此需要通过get_all_category_ids
来获取它们并在结果上循环。这可能有效:
<div class="divs">
<div class="divs">
<?php
$categoryIds = get_all_category_ids();
foreach($categoryIds as $categoryId): ?>
<div class="divs">
<h3 class="divs">
<a href="<?php echo get_category_link($categoryId); ?>">
<?php echo get_cat_name($categoryId); ?>
</a>
</h3>
</div>
<div class="divs">
<ol>
<?php
$args = array('category' => $categoryId, 'post_type' => 'post');
$postslist = get_posts($args);
$i = 0;
foreach ($postslist as $post) : setup_postdata($post);
{
if (++$i > 3) {
break;
}
}
?>
<li>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
<?php endforeach; ?>
</ol>
</div>
<?php endforeach; ?>
</div>
</div>