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

时间:2018-04-10 21:21:07

标签: wordpress breadcrumbs

我无法弄清楚如何使用下面的代码分别修复www.example.com/blog/页面和每个博客文章的面包屑菜单。在博客页面上,它显示我的第一篇博文的标题,而不是我的页面标题(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 :(得分: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 } ?>

希望这有帮助!祝你好运!