Повторите все имена категорий, кроме одного

У меня есть этот простой код, который создает панировочные сухари:

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_replace или просто запретить the_category вызывать top (мне все еще нужен пост, я просто не хочу ссылаться на top в панировочных сухарях)?

Solutions Collecting From Web of "Повторите все имена категорий, кроме одного"

the_category echo s . Вы не сможете использовать строковые манипуляции. Никакие строки не return чтобы вы могли манипулировать. Они просто echo немедленно.

Вы можете полностью отфильтровать определенную категорию, которая, по-видимому, является вариантом, при этом:

 function cat_filter_wpse_137596($categories) { foreach ($categories as $k => $c) { if ('uncategorized' === $c->slug) { unset($categories[$k]); } } return $categories; } не 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'); 

Нет простого способа сохранить категорию и удалить ссылку. Вам понадобится некоторое неприятное регулярное выражение the_category фильтра the_category .