回显所有类别名称,但一个类别名称除外

时间:2014-03-11 作者:tmyie

我有一个创建面包屑的简单代码:

function the_breadcrumb() {
    if (!is_home()) {
        echo \'<a href="\';
        echo get_option(\'home\');
        echo \'">\';
        echo \'home\';
        echo " / ";
        if (is_category() || is_single()) {
            the_category(\' / \');
            if (is_single()) {
                echo " / " . \'<a href="#">\' . get_the_title() . \'</a>\';
            }
        } elseif (is_page()) {
            echo " / " . \'<a href="#">\' . get_the_title()  . \'</a>\';
        }
    }
}
这也反映了:

<p class="bread-crumbs">
    <a href="http://fashion-detail.dev">home / </a>
    <a href="http://fashion-detail.dev/?cat=4" title="View all posts in Fashion" rel="category">Fashion</a> / 
    <a href="http://fashion-detail.dev/?cat=16" title="View all posts in Top" rel="category">Top</a> / 
    <a href="#">This is in the fashion category.</a>        
</p>
但是,它不希望显示a href 链接到的标记top 类别是否有方法包含str\\u replace,或只是阻止调用\\u类别top (我仍然需要这篇文章,我只是不想链接到top 在面包屑里)?

1 个回复
SO网友:s_ha_dum

the_category echos content. 您将无法使用字符串操作。没有字符串return你可以操纵的。他们只是echo立即执行ed。

您可以完全过滤掉一个特定类别,这似乎是一个选项,使用以下选项:

function cat_filter_wpse_137596($categories) {
  foreach ($categories as $k => $c) {
    if (\'uncategorized\' === $c->slug) {
      unset($categories[$k]);
    }
  }
  return $categories;
}
您可以这样使用它:

    add_filter(\'get_the_categories\',\'cat_filter_wpse_137596\');
    if (is_category() || is_single()) {
        the_category(\' / \');
        if (is_single()) {
            echo " / " . \'<a href="#">\' . get_the_title() . \'</a>\';
        }
    } elseif (is_page()) {
        echo " / " . \'<a href="#">\' . get_the_title()  . \'</a>\';
    }
    remove_filter(\'get_the_categories\',\'cat_filter_wpse_137596\');
没有简单的方法可以保留类别并删除链接。你需要一些下流的regexthe_category filter.

结束

相关推荐

Several loop in search result

我想在搜索后的结果中使用两个循环。首先,如果有结果,我开始循环<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> 并在循环后显示属于某个类别的文章<?php $cats = get_categories(); foreach ($cats as $cat) { query_posts(\'cat=\'.$cat-&g