最近在 Widgets 增加了數個友好 Blog,
不過排序只有 Link title, Link rating, Link ID, Random 四個選擇,一般來說相信夠用,但其實 Sort by 可以有很多選擇

  • 『id』 (說明說 WP 3.2 後使用 『link_id’,不過我見現在 3.4.1 依然使用 『id』)
  • 『url』
  • 『name』 – Default 設定
  • 『target』
  • 『description』
  • 『owner』 – 以增加 link 的人人名決定.
  • 『rating』
  • 『updated』 注意:不會直接去監測友站的更新。會經 pingomatic 服務收到 update 通知,一般 wordpress default 都已支援。
  • 『rel』 – bookmark relationship (XFN).
  • 『notes』
  • 『rss』
  • 『length』 – Bookmark 名稱長短,由最短到最長
  • 『rand』 – 隨機

其實只要修改 wp-includes\default-widgets.php

在第 105 行 (以 3.4.1 為準,以下是以增加 updated 為目的修改。)

$show_description = isset($instance[『description』]) ? $instance[『description』] : false;
$show_name = isset($instance[『name』]) ? $instance[『name』] : false;
$show_rating = isset($instance[『rating』]) ? $instance[『rating』] : false;
$show_images = isset($instance[『images』]) ? $instance[『images』] : true;
$category = isset($instance[『category』]) ? $instance[『category』] : false;
$orderby = isset( $instance[『orderby』] ) ? $instance[『orderby』] : 『name』;
$order = $orderby == 『rating』 ? 『DESC』 : 『ASC』;
$limit = isset( $instance[『limit』] ) ? $instance[『limit』] : -1;

修改成

$show_description = isset($instance[『description』]) ? $instance[『description』] : false;
$show_name = isset($instance[『name』]) ? $instance[『name』] : false;
$show_rating = isset($instance[『rating』]) ? $instance[『rating』] : false;
$show_images = isset($instance[『images』]) ? $instance[『images』] : true;
$category = isset($instance[『category』]) ? $instance[『category』] : false;
$orderby = isset( $instance[『orderby』] ) ? $instance[『orderby』] : 『updated『;
$order = $orderby == 『rating』 ? 『DESC』 : 『ASC』;
$limit = isset( $instance[『limit』] ) ? $instance[『limit』] : -1;

在第 130 行

$instance[『orderby』] = 『name』;
if ( in_array( $new_instance[『orderby』], array( 『name』, 『rating』, 『id』, 『rand』 ) ) )
$instance[『orderby』] = $new_instance[『orderby』];

修改成

$instance[『orderby』] = 『name』;
if ( in_array( $new_instance[『orderby』], array( 『name』, 『rating』, 『id』, 『rand』, 『updated』 ) ) )
$instance[『orderby』] = $new_instance[『orderby』];

另外在第 160 行下面增加 updated

<select name=」<?php echo $this->get_field_name(『orderby』); ?>」 id=」<?php echo $this->get_field_id(『orderby』); ?>」 class=」widefat」>
<option value=」name」<?php selected( $instance[『orderby』], 『name』 ); ?>><?php _e( 『Link title』 ); ?></option>
<option value=」rating」<?php selected( $instance[『orderby』], 『rating』 ); ?>><?php _e( 『Link rating』 ); ?></option>
<option value=」id」<?php selected( $instance[『orderby』], 『id』 ); ?>><?php _e( 『Link ID』 ); ?></option>
<option value=」rand」<?php selected( $instance[『orderby』], 『rand』 ); ?>><?php _e( 『Random』 ); ?></option>
</select>

修改成

<select name=」<?php echo $this->get_field_name(『orderby』); ?>」 id=」<?php echo $this->get_field_id(『orderby』); ?>」 class=」widefat」>
<option value=」name」<?php selected( $instance[『orderby』], 『name』 ); ?>><?php _e( 『Link title』 ); ?></option>
<option value=」rating」<?php selected( $instance[『orderby』], 『rating』 ); ?>><?php _e( 『Link rating』 ); ?></option>
<option value=」id」<?php selected( $instance[『orderby』], 『id』 ); ?>><?php _e( 『Link ID』 ); ?></option>
<option value=」rand」<?php selected( $instance[『orderby』], 『rand』 ); ?>><?php _e( 『Random』 ); ?></option>
<option value=」updated」<?php selected( $instance[『orderby』], 『updated』 ); ?>><?php _e( 『Updated』 ); ?></option> 
</select>

這樣就大功告成

blogroll updated

另外,如果你有很多朋友交換連結,widgets 因為易讀性關係都不會顯示全部連結,我建議建立一個獨立的 page 放 blogroll

這樣你而要一個 plugin,我推介 WP Blogroll Links,這個 plugin 簡單易用,安裝後只要新增一個 Page,入面打上 WP Blogroll Links 的 shortcode 就可以了。
詳細請參閱 plugin 內的說明,而我的 shortcode 是

[wp-blogroll orderby=updated always_show_names=1 showdesc=1]
(因為會直接出的關係,所似 wp-blogroll 用了全型字)

就可以看到這個了 https://www.enterpr1se.info/blogroll/