Home > Wordpress > wordpress升级到3.0以后首页分类调用single_cat_title()不显示的问题

wordpress升级到3.0以后首页分类调用single_cat_title()不显示的问题

September 8th, 2010

最近在把原来 fc2、blogger 下模板重构为 wordpress 模板的时候一个让人头痛的问题。在 3.0 版本以前single_cat_title() 是可以直接调用显示 wordpress 分类的。 而在 3.0 / 3.0.1 版本中 single_cat_title() 的调用却是空白。

在两个版本的 /wp-includes/general-template.php 中对比 single_cat_title() 。发现 3.0 版本以后 single_cat_title() 更新。

//3.0

function single_cat_title($prefix = ”, $display = true ) {
global $wp_query;

if ( is_tag() )
return single_tag_title($prefix, $display);

if ( !is_category() )
return;

$cat = $wp_query->get_queried_object();
$my_cat_name = apply_filters(‘single_cat_title’, $cat->name);
if ( !empty($my_cat_name) ) {
if ( $display )
echo $prefix . $my_cat_name;
else
return $my_cat_name;
}
}

//2.9

function single_cat_title($prefix = ”, $display = true ) {
$cat = intval( get_query_var(‘cat’) );
if ( !empty($cat) && !(strtoupper($cat) == ‘ALL’) ) {
$my_cat_name = apply_filters(‘single_cat_title’, get_the_category_by_ID($cat));
if ( !empty($my_cat_name) ) {
if ( $display )
echo $prefix.strip_tags($my_cat_name);
else
return strip_tags($my_cat_name);
}
} else if ( is_tag() ) {
return single_tag_title($prefix, $display);
}
}

因此就有了此问题的粗暴解决办法:

把wordpress 2.9的函数复制一个到/wp-includes/general-template.php, 重命名single_cat_title_29 (),需要显示分类的时候调用 single_cat_title_29 ()。

admin Wordpress

Comments are closed.