/**
* 根据标题首字母制作标签页面
*/
/**
* 拼音首字母
*/
function specs_getfirstchar( $s0 ){
$fchar = ord( $s0 {0});
if ( $fchar >= ord( "A" ) and $fchar <= ord( "z" ) ) return strtoupper ( $s0 {0});
$s1 = iconv( "UTF-8" , "gb2312" , $s0 );
$s2 = iconv( "gb2312" , "UTF-8" , $s1 );
if ( $s2 == $s0 ){ $s = $s1 ;} else { $s = $s0 ;}
$asc = ord( $s {0}) * 256 + ord( $s {1}) - 65536;
if ( $asc >= -20319 and $asc <= -20284) return "A" ;
if ( $asc >= -20283 and $asc <= -19776) return "B" ;
if ( $asc >= -19775 and $asc <= -19219) return "C" ;
if ( $asc >= -19218 and $asc <= -18711) return "D" ;
if ( $asc >= -18710 and $asc <= -18527) return "E" ;
if ( $asc >= -18526 and $asc <= -18240) return "F" ;
if ( $asc >= -18239 and $asc <= -17923) return "G" ;
if ( $asc >= -17922 and $asc <= -17418) return "H" ;
if ( $asc >= -17417 and $asc <= -16475) return "J" ;
if ( $asc >= -16474 and $asc <= -16213) return "K" ;
if ( $asc >= -16212 and $asc <= -15641) return "L" ;
if ( $asc >= -15640 and $asc <= -15166) return "M" ;
if ( $asc >= -15165 and $asc <= -14923) return "N" ;
if ( $asc >= -14922 and $asc <= -14915) return "O" ;
if ( $asc >= -14914 and $asc <= -14631) return "P" ;
if ( $asc >= -14630 and $asc <= -14150) return "Q" ;
if ( $asc >= -14149 and $asc <= -14091) return "R" ;
if ( $asc >= -14090 and $asc <= -13319) return "S" ;
if ( $asc >= -13318 and $asc <= -12839) return "T" ;
if ( $asc >= -12838 and $asc <= -12557) return "W" ;
if ( $asc >= -12556 and $asc <= -11848) return "X" ;
if ( $asc >= -11847 and $asc <= -11056) return "Y" ;
if ( $asc >= -11055 and $asc <= -10247) return "Z" ;
return null;
}
function specs_pinyin( $zh ){
$ret = "" ;
$s1 = iconv( "UTF-8" , "gb2312" , $zh );
$s2 = iconv( "gb2312" , "UTF-8" , $s1 );
if ( $s2 == $zh ){ $zh = $s1 ;}
$s1 = substr ( $zh , $i ,1);
$p = ord( $s1 );
if ( $p > 160){
$s2 = substr ( $zh , $i ++,2);
$ret .= specs_getfirstchar( $s2 );
} else {
$ret .= $s1 ;
}
return strtoupper ( $ret );
}
/**
* 标签页面
*/
function specs_show_tags() {
if (! $output = get_option( ‘specs_tags_list‘ )){
$categories = get_terms( ‘post_tag‘ , array (
‘orderby‘ => ‘count‘ ,
‘hide_empty‘ => 1
) );
foreach ( $categories as $v ){
for ( $i = 65; $i <= 90; $i ++){
if (specs_pinyin( $v ->name) == chr ( $i )){
$r [ chr ( $i )][] = $v ;
}
}
for ( $i =48; $i <=57; $i ++){
if (specs_pinyin( $v ->name) == chr ( $i )){
$r [ chr ( $i )][] = $v ;
}
}
}
ksort( $r );
$output = "<ul class=‘list-inline‘ id=‘tag_letter‘>" ;
for ( $i =65; $i <=90; $i ++){
$tagi = $r [ chr ( $i )];
if ( is_array ( $tagi )){
$output .= "<li><a href=‘#" . chr ( $i ). "‘>" . chr ( $i ). "</a></li>" ;
} else {
$output .= "<li>" . chr ( $i ). "</li>" ;
}
}
for ( $i =48; $i <=57; $i ++){
$tagi = $r [ chr ( $i )];
if ( is_array ( $tagi )){
$output .= "<li><a href=‘#" . chr ( $i ). "‘>" . chr ( $i ). "</a></li>" ;
} else {
$output .= "<li>" . chr ( $i ). "</li>" ;
}
}
$output .= "</ul>" ;
$output .= "<ul id=‘all_tags‘ class=‘list-unstyled‘>" ;
for ( $i =65; $i <=90; $i ++){
$tagi = $r [ chr ( $i )];
if ( is_array ( $tagi )){
$output .= "<li id=‘" . chr ( $i ). "‘><h4 class=‘tag_name‘>" . chr ( $i ). "</h4>" ;
foreach ( $tagi as $tag ){
$output .= "<a href=‘" .get_tag_link( $tag ->term_id). "‘>" . $tag ->name. "(" . $tag -> count . ")</a>" ;
}
}
}
for ( $i =48; $i <=57; $i ++){
$tagi = $r [ chr ( $i )];
if ( is_array ( $tagi )){
$output .= "<li id=‘" . chr ( $i ). "‘><h4 class=‘tag_name‘>" . chr ( $i ). "</h4>" ;
foreach ( $tagi as $tag ){
$output .= "<a href=‘" .get_tag_link( $tag ->term_id). "‘>" . $tag ->name. "(" . $tag -> count . ")</a>" ;
}
}
}
$output .= "</ul>" ;
update_option( ‘specs_tags_list‘ , $output );
}
echo $output ;
}
function clear_tags_cache() {
update_option( ‘specs_tags_list‘ , ‘‘ ); // 清空 specs_archives_list
}
add_action( ‘save_post‘ , ‘clear_tags_cache‘ ); // 新发表文章/修改文章时
/**
* 根据标签ID活动标签文章数
*/
function specs_post_count_by_tag ( $arg , $type = ‘include‘ ){
$args = array (
$type => $arg ,
);
$tags = get_tags( $args );
if ( $tags ) {
foreach ( $tags as $tag ) {
return $tag -> count ;
}
}
}
|