Aside

Matt在WordPress 1.2之前,就寫了On Asides這篇文件,說明怎樣在WordPress系統上,快速製作SideBlog的方式,不過,似乎在中文使用者中,還沒有看到多少人在WordPress使用SideBlog,可能是因為沒有多少人注意到這篇文件,也可能是因為沒有中文文件介紹,在這邊便簡單介紹一下。

所謂的SideBlog,就是當您擁有了一個網誌站台(blog)之後,您可能會想將一些比較次要、不重要的資訊,放在您的網站頁面上,但是又希望與其他比較重要的網誌內容,有所區隔。這些資訊可能是三言兩語,可能是最近在網路看到的某篇文章、某個站台的網址,而通常會放在網頁上的某一邊的角落,故得名之。

許多人製作SideBlog的方式是另外弄一個站台,然後將另外一個站台的文章列表,放在網頁上,在WordPress中不需要這麼麻煩,只需要另外建立一個文章分類,然後,只要是歸類到這個分類的文章,就會自動出現在SideBlog中。所以在進行以下步驟之前,請先建立好一個分類,比方說叫做Aside,然後記住這個分類的ID(是數字),文章分類的ID可以在分類管理列表中找到(管理介面中的「分類」或「Category」),請在wp-config.php檔案中,加入一行。

$cat_aside = 你所指定的分類ID;

先介紹Matt的作法,他的作法中,會將歸類到Aside目錄中的文章,同樣會出現在文章列表中,不過,不同於一般文章,而是會以列表的方式簡單呈現,這種效果請不妨參見WeblogToolsCollection網站。要製作這種效果,需要稍微小改一下index.php,請使用文字編輯器,開啟這個檔案後,找一下:


','< /h2 >'); // 插入日期標題 ?>
中間省略

改成


< li >';
echo wptexturize($post->post_content); the_time(' (n/j g:i) '); comments_popup_link('(0)', '(1)', '(%)')?>
< /ul >";
?>

','< /h2 >'); ?>
中間省略


如果你不希望SideBlog的內容出現在首頁上,而是希望將某個分類彙整頁面,呈現成SideBlog的形式的話(例如我這個站台),那麼,您需要修改一下 wp-blog-header.php 這個檔案,找一下 // Author/user stuff 這一行註解(大概在第三百行左右的地方),然後在這一行前面加入:



這一段的意思是,如果沒有傳入文章分類的變數,而且您自己又沒有登入的話,那麼就不會在頁面上顯示某個分類的文章。最後,如果你想要顯示將某個分類的最新文章,都放在頁面當中的選單部份(menu裡頭),您可以在my-hacks.php中,或是自己另外弄一個外掛程式,內容是:


0) $query .= ' OR category_id = '.intval($cat_sub_array[$i]);
}
}
$query .= ')';
$query .=" ORDER BY post_date DESC LIMIT 50 ";
$posts = $wpdb->get_results($query);
if ($posts) {
$post_buffer = array();
foreach ($posts as $post_buf) {
$i = $post_buf->ID;
$post_buffer[$i] = $post_buf;
}
foreach ($post_buffer as $post) {
start_wp();
if($j ++ >= $limit) continue;
if($show_title){
echo '< li >';
the_title();
echo '
';
}
if($show_content){
echo "
";
if($use_link) echo '';
echo wptexturize($post->post_content);
if($use_link) echo '
';
}
echo '< /li >';
}
}
else {
echo "目前無文章";
}
}

function cat_sub($id, $reset=1){
global $tablecategories, $cache_categories;
global $sub_array, $sub_count;
if($reset){
$sub_count = 0;
$sub_array = Array();
}
$count = count($cache_categories);
for($i = 0;$i < $count; $i ++){ if($cache_categories[$i]->category_parent == $id){
$sub_count++;
$sub_array[$sub_count] = $cache_categories[$i]->cat_ID;
cat_sub($cache_categories[$i]->cat_ID, 0);
}
}
return $sub_array;
}
?>

這樣,只要在index.php中,找個地方插入 <?php get_cat_recent($cat_aside) ?>,就可以在頁面上,列出sideblog分類中最近的文章列表了。