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分類中最近的文章列表了。
hi, zonble
1. 文章中的原始碼,有些 < > 內多了空白
2. 寫入 my-hacks.php,index.php 加入 get_cat_recent 後,會出現錯誤訊息: undefined function: cat_sub,請問該如何解決? 謝謝!
code 標籤無法使用 @_@?,我要說的是<>內多了空白。抱歉造成版面凌亂,可將樓上的留言刪除
Thanks, 已經可以正常作用了 ^^
問一個小問題,如果想將 sideblog 這個分類放在首頁上任一地方,是用 list_cats 嗎? 而我該如何加入呢?
啊,就是文章的最後一段啊:
這樣,只要在index.php中,找個地方插入 <?php get_cat_recent($cat_aside) ?>,就可以在頁面上,列出sideblog分類中最近的文章列表了
我覺得你那樣寫會比較好,不用動到wp-blog-header.php這個檔案,以後也比較沒有升級方面的問題。:)
Pingback: 桑林志
因為是新手所以請教一下,我想利用sideblog製作一個名詞解釋的功能,這個sideblog不會以post方式列出(dotann兄介紹的hack可以解決),但我希望把新的名詞解釋的aside放在menu裡面(就像Zonble給的範例一樣),但用了以後發覺IE會死當,不曉得是不是code的關係,因我不懂這些code,所以不曉得這些code是否要做些修正?
我目前是利用Matt的方式,逐條列出post出來,但修改post日期還能隨著文走。但這樣感覺比較笨就是了。
感謝.
Pingback: 人非聖賢 誰不寂寞 » Sideblog功能試作
Pingback: 《徘徊在文字之間》 · Tarski佈景主題設定與網誌寬度、標題大小等相關調整說明
Pingback: 《徘徊在文字之間》 · Tarski佈景主題設定與欄寬、字型等相關調整說明
Pingback: 一些小修改 | kan.io