返回

如何在 WordPress 中按自定义文章类型列出文章标题?

php

用自定义文章类型列出文章标题

在 WordPress 中,自定义文章类型是一种创建自定义内容结构的方式,不同于传统的帖子和页面。它们允许您组织和管理网站上的特定类型的内容。

问题:按组列出文章标题

假设您有一个 WordPress 网站,其中包含多个自定义文章类型,例如“Testimonials”和“餐厅”。您希望创建一个列表,其中所有文章标题按自定义文章类型分组。

解决方案:使用嵌套循环

要解决这个问题,可以使用嵌套循环,如下所示:

$args = array(
    'post_type'         => 'any',
    'posts_per_page'    => -1,
    'exclude'           => ''
);

$loop = new WP_Query($args);

if ($loop->have_posts()) {
    while ($loop->have_posts()) {
        $loop->the_post();

        echo "<h2>" . get_post_type() . "</h2>";

        $inner_args = array(
            'post_type'         => get_post_type(),
            'posts_per_page'    => -1,
        );

        $inner_loop = new WP_Query($inner_args);

        if ($inner_loop->have_posts()) {
            echo "<ul>";

            while ($inner_loop->have_posts()) {
                $inner_loop->the_post();

                echo "<li><a href='" . get_the_permalink() . "'>" . get_the_title() . "</a></li>";
            }

            echo "</ul>";
        }

        wp_reset_postdata();
    }
}

wp_reset_query();

排除特定文章类型

要排除特定文章类型,可以在 $args 数组中使用 'exclude' 参数,如下所示:

$args = array(
    'post_type'         => 'any',
    'posts_per_page'    => -1,
    'exclude'           => array('clothes', 'people'),
);

这将从列表中排除“衣服”和“人”文章类型的所有文章。

结论

通过使用嵌套循环和 'exclude' 参数,您可以轻松地列出包含组的所有文章标题,并排除特定的文章类型。这允许您创建按自定义文章类型组织的文章列表,从而提高网站的组织性和可读性。

常见问题解答

  1. 为什么使用嵌套循环?
    嵌套循环允许您获取所有自定义文章类型并为每个类型获取文章标题。

  2. 如何添加其他文章类型?
    只需在 'exclude' 数组中添加要排除的自定义文章类型的名称即可。

  3. 我可以按标题排序列表吗?
    是的,您可以在 $inner_args 数组中添加 'orderby''order' 参数来按标题排序列表。

  4. 我可以自定义列表的外观吗?
    是的,您可以修改 HTML 标记以自定义列表的外观和样式。

  5. 这适用于 WordPress 的所有版本吗?
    此解决方案适用于 WordPress 4.0 及更高版本。