我正在寻找一种从我的痕迹主题的get_category_parents中排除ID为3和4的类别的方法。这是代码,有问题的行是11:
function the_breadcrumb() {
global $post;
if (!is_home()) {
echo '<a href="'.get_option('home').'">'.home.'</a>';
if (is_category()) {
echo " / ";
echo single_cat_title();
} elseif(is_single() && !is_attachment()) {
$cat = get_the_category(); $cat = $cat[0];
echo " / ";
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo " / ";
echo thman_get_limited_string($post->post_title,30);
}
elseif (is_search()) {
echo " / " . cerca;
}
elseif (is_page() && $post->post_parent) {
echo ' / <a href="'.get_permalink($post->post_parent).'">';
echo get_the_title($post->post_parent);
echo "</a> / ";
echo thman_get_limited_string($post->post_title,30);
}
elseif (is_page() OR is_attachment()) {
echo " / ";
echo thman_get_limited_string($post->post_title,30);
}
elseif (is_author()) {
echo wp_title(' / Profilo');
echo "";
}
elseif (is_404()) {
echo " / ";
echo errore_404;
}
elseif (is_archive()) {
echo wp_title(' / ');
}
}
}
答案 0 :(得分:2)
$cat = get_the_category();
$cat = $cat[0]->term_id;
// next will return an array of all category ancestors, with toplevel cat being [0]
$ancestors = array_reverse(get_ancestors($cat, 'category'));
if($ancestors) {
// set up output
$output = '';
foreach($ancestors as $cat) {
// skips cats 3 and 4
if($cat == '3' || $cat == '4') continue;
$catlink = get_category_link($cat);
$catname = get_cat_name($cat);
$output .= '<a href="' . $catlink . '">' . $catname . '</a>' . "\n";
}
}
echo $output;
这是我的头脑,但我相信这是正确的。
答案 1 :(得分:0)
谢谢你的回答,但我不是php的专家,所以我的完整代码应该是这样的吗?
function the_breadcrumb() {
global $post;
if (!is_home()) {
echo '<a href="'.get_option('home').'">'.home.'</a>';
if (is_category()) {
echo " / ";
echo single_cat_title();
} elseif(is_single() && !is_attachment()) {
$cat = get_the_category(); $cat = $cat[0]->term_id;
// next will return an array of all category ancestors, with toplevel cat being [0]
$ancestors = array_reverse(get_ancestors($cat, 'category');
if($ancestors) {
// set up output
$output = '';
foreach($ancestor as $cat) {
// skips cats 3 and 4
if($cat == '3' || $cat == '4') continue;
$catlink = get_category_link($cat);
$catname = get_cat_name($cat);
$output .= '<a href="' . $catlink . '">' . $catname . '</a>' . "\n";
}
}
echo $output;
echo " / ";
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo " / ";
echo the_title_shorten(45,'...');
}
elseif (is_search()) {
echo " / " . cerca;
}
elseif (is_page() && $post->post_parent) {
echo ' / <a href="'.get_permalink($post->post_parent).'">';
echo get_the_title($post->post_parent);
echo "</a> / ";
echo the_title_shorten(45,'...');
}
elseif (is_page() OR is_attachment()) {
echo " / ";
echo the_title_shorten(45,'...');
}
elseif (is_author()) {
echo wp_title(' / Profilo');
echo "";
}
elseif (is_404()) {
echo " / ";
echo errore_404;
}
elseif (is_archive()) {
echo wp_title(' / ');
}
}
}
答案 2 :(得分:0)
谢谢你们所有人, 我终于让代码工作了:
$ancestors = array_reverse(get_ancestors(get_cat_ID(single_cat_title("", false)), 'category'));
$cat_parent_and_cat = '';
if($ancestors) {
foreach($ancestors as $cat) {
//if($cat == '3' || $cat == '4') continue; // skips cats 3 and 4
$catlink = get_category_link($cat);
$catname = get_cat_name($cat);
$cat_parent_and_cat .= '<a href="' . $catlink . '">' . $catname . '</a>' . ' › ' ;
}
}
echo $cat_parent_and_cat;
希望它会帮助某人