PIX主题友链页面显示所有分类下的所有友链
本文是《技术相关(共37篇)》目录的第 36 篇。阅读本文前,建议先阅读本文前3篇文章:
因为小站的友链,经常查看有的超过半年未更新,有的超过一年未更新,想增加链接分类归类显示。已经打不开的友链和已经下架本站的友链不再增加分类,可能时间长了没有变化就直接删除掉了。
分类已经分好,可是前台显示不出来,分析了代码,只能显示特定分类即默认的分类。修改了代码,终于可以显示了。
DEMO:互链社
代码在pix/inc/pix-fn.php里,如下:
//友链
function link_item(){
$arr = get_op('linkscat_show');
$linkcats = get_terms( array(
'taxonomy' => 'link_category',
'include' => $arr,
'count' => true,
'hide_empty' => 1,
'orderby' => 'include',
) );
$output = '';
foreach($linkcats as $linkcat){
$id = $linkcat->term_id;
$output .= '<div class="link_group_content"><div class="link_cat_name"><i class="ri-bookmark-line"></i>'.$linkcat->name.'</div><div id="link_'.$id.'" class="link_group">';
$bookmarks = get_bookmarks( 'orderby=date&category='.$id);
if ( !empty($bookmarks) ) {
foreach ( $bookmarks as $bookmark ) {
$img_type = $bookmark->link_image ? $bookmark->link_image : '';
$preg = "/^http(s)?:\\/\\/.+/";
$avatar = '<img src="'.THEME_URL.'/img/avatar.png">';
if(!empty($img_type)){
if ( preg_match($preg,@$img_type) ) {
$avatar = '<img alt="avatar" src="'. $bookmark->link_image .'" srcset="'. $bookmark->link_image .'" class="avatar avatar-80" height="80" width="80">';
}
else {
$avatar = get_avatar( $bookmark->link_image, 80 );
}
}
$output .= '<div class="item" title="'. $bookmark->link_description .'">';
$output .= '<div class="link-avatar"><a href="'. $bookmark->link_url .'" target="_blank">'. $avatar .'</a></div>';
$output .= '<div class="info">';
$output .= '<h3 class="name"><a href="'. $bookmark->link_url .'" target="_blank">'. $bookmark->link_name .'</a></h3>';
$output .= '<div class="meta button"><a href="'. $bookmark->link_url .'" target="_blank"><i class="iconfont icon-zhuanfa_3"></i></a></div>';
$output .= '<div class="description">'. $bookmark->link_description .'</div></div>';
$output .= '</div>';
}
}
$output .= '</div></div>';
}
return $output;
}
修改为如下即可:
// 友链
function link_item() {
// 获取所有的链接分类
$linkcats = get_terms(array(
'taxonomy' => 'link_category',
'count' => true,
'hide_empty' => 1,
'orderby' => 'id'
));
$output = '';
foreach ($linkcats as $linkcat) {
$id = $linkcat->term_id;
$output.= '<div class="link_group_content"><div class="link_cat_name"><i class="ri-bookmark-line"></i>'. $linkcat->name. '</div><div id="link_'. $id. '" class="link_group">';
// 获取当前分类下的所有书签
$bookmarks = get_bookmarks(array(
'orderby' => 'date',
'category' => $id
));
if (!empty($bookmarks)) {
foreach ($bookmarks as $bookmark) {
$img_type = $bookmark->link_image? $bookmark->link_image : '';
$preg = "/^http(s)?:\\/\\/.+/";
$avatar = '<img src="'. THEME_URL. '/img/avatar.png">';
if (!empty($img_type)) {
if (preg_match($preg, @$img_type)) {
$avatar = '<img alt="avatar" src="'. $bookmark->link_image. '" srcset="'. $bookmark->link_image. '" class="avatar avatar-80" height="80" width="80">';
} else {
$avatar = get_avatar($bookmark->link_image, 80);
}
}
$output.= '<div class="item" title="'. $bookmark->link_description. '">';
$output.= '<div class="link-avatar"><a href="'. $bookmark->link_url. '" target="_blank" class="hover-trigger">'. $avatar. '</a></div>';
$output.= '<div class="info">';
$output.= '<h3 class="name"><a href="'. $bookmark->link_url. '" target="_blank" class="hover-trigger">'. $bookmark->link_name. '</a></h3>';
$output.= '<div class="meta button"><a href="'. $bookmark->link_url. '" target="_blank"><i class="iconfont icon-zhuanfa_3"></i></a></div>';
$output.= '<div class="description hover-trigger">'. $bookmark->link_description. '</div></div>';
$output.= '</div>';
}
}
$output.= '</div></div>';
}
return $output;
}
上面 'orderby' => 'id'是按照分类的ID从小到大排序的,如果是按照名称分类就改成 'orderby' => 'name'即可。
历史上本站今天曾发布的文章:
- 2023: PIX主题替换jsDelivr公共资源库(6)
沉沦
这个主题这么全的功能竟然不带链接分类
似水流年
后台带,前台不显示。
网友小宋
真是一个无聊的功能。
似水流年
还没睡呀?你也上夜班。