首页 文章

无法在wordpress中修复面包屑结构以显示“博客”

提问于
浏览
0

我无法弄清楚如何使用下面的代码分别修复我的www.example.com/blog/页面和每个博客文章的面包屑菜单 . 在博客页面上,它显示我的第一篇博文的 Headers ,而不是我的页面 Headers (h1标签) .

目前的结果:

主页>当您在旅途中时,5个简单的午餐创意

预期结果:

主页>博客

在我的博客文章中,面包屑结构没有显示正确的层次结构;它会跳过“博客”菜单项

目前的结果:

首页>早上提高 生产环境 力的10种方法

期望的结果:

首页>博客>早上提高 生产环境 力的10种方法

将以下代码添加到主题functions.php文件中 .

function breadcrumbs($id = null){
?>
<div id="breadcrumbs">
    <a href="<?php bloginfo('url'); ?>">Home</a></span> >
    <?php if(!empty($id)): ?>
    <a href="<?php echo get_permalink( $id ); ?>" ><?php echo get_the_title( $id ); ?></a> >
    <?php endif; ?>
    <span class="breadcrumb_last"><?php the_title(); ?></span>
</div>
<?php }

添加到header.php

<?php breadcrumbs(); ?>

1 回答

  • 0

    根据面包屑代码的设置方式,您需要运行检查以查看您当前是否在博客页面上,如果是,请在最后一个面包屑项目和主页面之间添加文本 .

    这可以通过利用全局wp_query和函数is_simple()来完成 . 这已经过测试,似乎有效 .

    function breadcrumbs($id = null) {
    
        $blogTitle = get_the_title( get_option('page_for_posts', true) );
        global $wp_query; ?>
    
        <div id="breadcrumbs">
    
            <span><a href="<?php bloginfo('url'); ?>">Home</a></span>
    
            <?php if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) { ?>
                > <?php echo $blogTitle; ?></span>
            <?php } ?>
    
            <?php if ( is_single() ) { ?>
                > <span><a href="<?php echo get_permalink( get_option( 'page_for_posts' ) ); ?>"><?php echo $blogTitle; ?></a></span> >
                <span><?php echo get_the_title(); ?></span>
            <?php } ?>
    
            <?php if (is_page() ) { ?>
                > <span><?php echo get_the_title(); ?></span>
            <?php } ?>
    
            <?php if (is_search() ) { ?>
                > <span> Search results: <?php echo the_search_query(); ?></span>
            <?php } ?>
    
        </div>
    
    <?php } ?>
    

    希望这可以帮助!祝好运!

相关问题