Wordpress 父类别存档显示与最新帖子相关的子类别标题时出现问题

问题描述 投票:0回答:2

我想在父类别下发布子类别的文章。问题是,当我尝试这样做时,h1 中的父类别标题会自动更改并将子类别显示为我发布的最新帖子。如何解决这个问题,让父类一直保持并显示为h1?

除了查看 archive.php 中的代码外,我没有尝试任何其他操作。我相信必须在此代码中添加一些内容,但我不确定是什么:

                <h1><?php
                    foreach((get_the_category()) as $category) {
                        echo "/ $category->cat_name" ;
                    }
                    ?>
                </h1>
     
php wordpress post parent-child categories
2个回答
0
投票

解决方案 1:检查您的存档模板文件 该问题可能是由您使用的存档模板文件引起的。确保模板文件使用正确的 WordPress 函数来显示类别和帖子标题。

例如,如果您使用 category.php 模板文件来显示父类别存档,则可以使用 get_category() 函数获取类别对象,使用 the_title() 函数显示帖子标题。

以下是您可以在 category.php 模板文件中使用的示例代码片段:

<?php
// Get the category object
$category = get_category(get_query_var('cat'));

// Display the category title
echo '<h1>' . $category->name . '</h1>';

// Start the loop
if (have_posts()) :
    while (have_posts()) :
        the_post();

        // Display the post title
        the_title('<h2>', '</h2>');

        // Display the post content
        the_content();

    endwhile;
endif;
?>

解决方案 2:检查您的类别设置 问题也可能是由 WordPress 中的类别设置引起的。确保子类别未设置为显示在父类别存档中。

要检查这一点,请转到 WordPress 仪表板并导航至“帖子”>“类别”。单击您遇到问题的父类别,并确保“类别存档”下的“显示为下拉列表”选项未设置为“显示层次结构”。

如果设置为“显示层次结构”,WordPress 将显示与父类别存档中最新帖子相关的子类别标题。

解决方案 3:使用插件修改存档 如果以上解决方法都不行,可以尝试使用插件修改父分类存档。有几个可用的 WordPress 插件可以修改存档模板并以不同方式显示帖子和类别。

一个流行的插件是“Category Posts Widget”,它允许您在小部件区域中显示来自特定类别或类别的帖子。另一个插件是“Advanced Category Excluder”,它允许您从存档模板中排除特定类别。

使用插件可能需要一些配置和自定义,因此请务必在安装和使用之前阅读插件文档和支持论坛。


0
投票

由于一篇文章可能有多个类别,

get_the_category()
函数总是返回一个数组。

可以循环生成的数组以获取每个类别的父项。

这是如何实现的:

$categories = get_the_category();

//check if at least one category is assigned 

if ( ! empty( $categories ) ) {

    foreach( $categories as $category ) {
        echo get_category_parents( $cat, true, ' &raquo; ' );
    }
}

上面的代码将输出所有父类别(父母和祖父母),每个类别都有一个 >> 分隔符:

Great Grand Parent Cat » Grand Parent Cat » Parent Cat » 

如果您只需要最新的父级或特定的父级,则还可以循环

get_category_parents

© www.soinside.com 2019 - 2024. All rights reserved.