WordPress - 面包屑导航,但使用自定义帖子类型

时间:2015-07-15 14:42:15

标签: php wordpress breadcrumbs

所以,我试图在导航下使用面包屑,但没有运气。

我正在关注此tutorial,但当我开始浏览我的自定义帖子类型时,就会出错。

例如 - 我有产品 - 在我的导航中拆分为内部外部产品。当我导航到其中一个 - 我得到以下内容:

主页»外部产品

哪个好极了!

现在 - 内部'外部产品'是子类别,子类别内部是产品。

如果我去:

主页 - 外部产品 - 第1类

我希望看到:

主页»外部产品»第1类

但请看:

主页»产品

是否有插件 - 或任何其他方式解决此问题,甚至可能自己设置路径?

2 个答案:

答案 0 :(得分:0)

我知道这可能有点晚了,但是如果你还没有解决这个问题,我已经编写了一个你可能感兴趣的面包屑功能。

在编写了几个WordPress网站和主题并且不断需要面包屑功能之后,我们决定创建一个可重用的,支持任何自定义帖子类型和分类。

只需将代码放在functions.php文件中,然后在主题模板文件中调用该功能,只要您想显示面包屑!

如果您需要任何帮助,请与我们联系。

谢谢,

亚当

https://github.com/mobilejazz/MJ-WP-Breadcrumb

答案 1 :(得分:0)

对于自定义帖子类型,有3个主要模板

  1. 存档
  2. 分类学
  3. 单人

,因此您可以添加面包屑而无需使用任何插件。下面是带有架构标记的代码,可帮助您提高SEO排名

对于存档页面:

<ol itemscope itemtype="http://schema.org/BreadcrumbList">
  <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
    <meta itemprop="position" content="1"/>
    <a itemscope itemtype="http://schema.org/Thing" itemprop="item" href="https://your-domain-name.com/post-type-name">
      <span itemprop="name">Post type product(for eg:)</span>
    </a>
  </li>
</ol>

对于分类页面:

<div class="breadcrumbs">
                      <ol itemscope itemtype="http://schema.org/BreadcrumbList">
                        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                          <meta itemprop="position" content="1"/>
                          <a itemscope itemtype="http://schema.org/Thing" itemprop="item" href="https://youdomain/products">
                            <span itemprop="name">Products</span>
                          </a>
                        </li>
                        >
                        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                          <meta itemprop="position" content="2"/>
                          <a itemscope itemtype="http://schema.org/Thing" itemprop="item" href="<?php echo esc_attr(get_term_link($term, $cat)); ?>">
                            <span itemprop="name">
                              <?php 
                                  $categories = single_term_title("", false);
                                  echo $categories; 
                              ?> category name
                            </span>
                          </a>
                        </li>
                      </ol>
                    </div>

单页:

<div class="breadcrumbs">
              <ol itemscope itemtype="http://schema.org/BreadcrumbList">
                <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                  <meta itemprop="position" content="1"/>
                  <a itemscope itemtype="http://schema.org/Thing" itemprop="item" href="https://yourdomain.com/products">
                    <span itemprop="name">Products</span>
                  </a>
                  <span class="breadcrumb-arrow">
                    >
                  </span>
                </li>
               
                <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                  <meta itemprop="position" content="2"/>
                  <?php
                    $cat_name = 'your-taxonomy';
                    $categories = get_the_terms( $post->ID, $cat_name );
                    
                    foreach($categories as $category) : 
                      if(!$category->parent): ?>
                        <span>
                          <a itemscope itemtype="http://schema.org/Thing" itemprop="item" href="<?php echo esc_attr(get_term_link($category, $cat_name)); ?>">
                            <?php echo $category->name; ?>
                          </a>
                        </span>
                          <span class="breadcrumb-arrow">
                            >
                          </span>
                    
                    <?php endif; ?>
                    </li>
                    <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                       <meta itemprop="position" content="3"/>
                      <?php
                        endforeach;
                      
                        foreach($categories as $category) : 
                        if($category->parent): ?>
                              <?php echo $category->name; ?>
                        <?php endif; 
                          endforeach;
                        ?>
                  </li>
                  <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                    <meta itemprop="position" content="4"/>
                    <span class="subcat trim-hc-b-title" title="<?php echo the_title(); ?>">
                      <?php the_title();?>
                    </span>
                  </li>
              </ol>
            </div>