Wordspew 在 WordPress 2.0 的問題

當在 WordPress 2.0 中引入 usermeta table 之後,之前很多需要 check user login 及 user information 的 plugins 都出現問題,Ajax Shoutbox - Wordspew 是其中之一,現有的其實是一個小問題,就是 login 了依舊要輸入名字等資料,在 WordPress 1.5.2 的時候是會自動 detect 登入了的用戶的,雖然我已經知會了作者,但暫時未有回覆,因為心急的關係,忍不住自行修改了,有興趣知道的朋友可以看看以下的改動方法。

問題是出於有關 nickname 的 checking,因為 nickname 已經由 users table 移至 usermeta table 內的一個 meta value,已往 get_currentuserinfo() 已不能讀取 nickname 了,所以需要 call get_userdata() 來讀取 usermeta 內的資料。

之前我曾經談過怎樣解決 Wordspew 在 MySQL 4.1.x 的亂碼問題,但是為免混亂,這次是以本來 1.16 版本的 wordspew.php 作解釋,修改方法如下。

在 471 行之後加入 $user = get_userdata($user_ID); 如下。

get_currentuserinfo(); // Gets logged in user.
$user = get_userdata($user_ID);

然後再在 485、487 及 489 行的 $user_nickname 轉成 $user->nickname,像如下。

if (!empty($user->nickname)) { /* If they are logged in, then print their nickname */ ?>
<label>< ?php _e('Name'); ?>: <em>< ?php echo $user->nickname ?></em></label>
<input type="hidden" name="shoutboxname" id="shoutboxname" value=" <?php echo $user->nickname; ?>" />

我已經準備了一個 patch file,如果懂用 patch command 的,用這個 patch file 來修改便更方便。

2 Responses to “Wordspew 在 WordPress 2.0 的問題”

  1. 582

    不错,先记下来:inlove:

    新版的那个 Ping Delay Remove 不知道怎么改到 1.5 来,国内出口实在太慢,每次发文章等半天。

  2. 583

    AvP:我覺得直接升級 2.0 來得直接呢。:wink:

Leave a Reply