PIX 主题友链页面显示所有分类下的所有友链

因为小站的友链,经常查看有的超过半年未更新,有的超过一年未更新,想增加链接分类归类显示。已经打不开的友链和已经下架本站的友链不再增加分类,可能时间长了没有变化就直接删除掉了。

分类已经分好,可是前台显示不出来,分析了代码,只能显示特定分类即默认的分类。修改了代码,终于可以显示了。

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;

}
PIX主题友链页面显示所有分类下的所有友链-似水流年

上面 'orderby' => 'id'是按照分类的 ID 从小到大排序的,如果是按照名称分类就改成 'orderby' => 'name'即可。

历史上本站今天曾发布的文章:

Comments | 4 条评论
  • 沉沦

    Safari 18 Safari 18 Mac OS X 10.15 Mac OS X 10.15 1 中国–河北 电信 ip address 27.128.*.*

    这个主题这么全的功能竟然不带链接分类

    • 似水流年

      Google Chrome 124 Google Chrome 124 GNU/Linux GNU/Linux 1 中国 中国联通 ip address 2408:8220:5f11:12b0:*:*

      后台带,前台不显示。

  • 网友小宋

    Microsoft Edge 129 Microsoft Edge 129 Windows 10 Windows 10 1 中国–河南–漯河 联通 ip address 125.44.*.*

    真是一个无聊的功能。

    • 似水流年

      IBrowse r IBrowse r Android 12 Android 12 1 中国–河南–漯河 电信 ip address 222.89.*.*

      还没睡呀?你也上夜班。

消息盒子
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新 10 条未读和已读信息