wordpress所有栏目循环输出
时间 : 2023-12-07 19:46:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

最佳答案

要循环输出WordPress所有的栏目,可以使用WordPress提供的函数 `get_categories()`。以下是一个示例代码:

```php

<?php

$categories = get_categories();

foreach ($categories as $category) {

echo '<h2>' . $category->name . '</h2>';

echo '<ul>';

$args = array(

'category' => $category->term_id,

'post_type' => 'post',

'post_status' => 'publish',

);

$posts = get_posts($args);

foreach ($posts as $post) {

echo '<li><a href="' . get_permalink($post->ID) . '">' . $post->post_title . '</a></li>';

}

echo '</ul>';

}

以上代码首先使用 `get_categories()` 函数获取所有的栏目,并使用 `foreach` 循环遍历每个栏目。在循环中,输出栏目的名称,并使用 `get_posts()` 函数获取属于该栏目的文章。然后使用 `foreach` 循环输出文章的标题和链接。最后,将输出的文章包裹在无序列表的标签中。

请在WordPress主题文件的相应位置插入以上代码,以实现循环输出所有栏目的功能。记得保存修改并刷新你的WordPress网站以查看结果。

其他答案

在WordPress中,可以使用循环函数来输出所有栏目。以下是一个示例代码:

```php

<?php

$categories = get_categories(); // 获取所有分类目录

foreach ($categories as $category) {

echo '<h2>' . $category->name . '</h2>'; // 输出分类目录名称

$args = array(

'cat' => $category->cat_ID, // 根据分类目录ID过滤文章

'posts_per_page' => -1 // 显示所有文章

);

$query = new WP_Query($args);

if ($query->have_posts()) {

echo '<ul>';

while ($query->have_posts()) {

$query->the_post();

echo '<li>';

the_title(); // 输出文章标题

echo '</li>';

}

echo '</ul>';

}

wp_reset_postdata();

}

?>

以上代码首先使用`get_categories()`函数获取所有分类目录,然后使用`foreach`循环遍历每个分类目录。在循环中,输出分类目录名称,并使用`WP_Query`创建一个新的查询对象,通过`cat`参数过滤指定分类目录的文章。

接着检查查询结果是否有文章,如果有的话,使用`while`循环遍历每篇文章,并使用`the_title()`函数输出文章标题。

最后,使用`wp_reset_postdata()`函数重置查询。这是必需的,以确保在这个循环之后的其他WordPress查询不会受到影响。