發表於: 週二, 十月 21, 2008

標籤: , , ,

自動過期的文章

在 WpRecipes 網站裡面看到一篇不錯的文章…不!我應該說 WpRecipes 一整個就是個好站,它提供了好多WordPress 進階管理的技巧讓你參考。其中文章自動過期這一篇,我想在一些設定為公告性的文章,是一個很好利用的方式。但是這個網站缺點就是講得太簡潔了,很多技巧它只提供一段範例碼跟簡易的說明就了事,這對 php 不是很熟的我其實還蠻困擾的。

那這裡我就針對這一篇讓文章自動過期的部份,大概說明一下我自己試用的心得。基本上這個網站提供的大都是要直接修改你的佈景主題,而本篇的修改主要是在文章迴圈(The Loop)的那一段。我以 WordPress 2.62 預設佈景主題為例,先開啟 index.php 這個檔案,找到文章迴圈程式碼的啟始段:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class=”post” id=”post-<?php the_ID(); ?>”>

接著把我自己修改過的範例碼貼在 <?php while (have_posts()) : the_post(); ?> 跟 <div class=”post” id=”post-<?php the_ID(); ?>”> 之間:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

<!–// Start of post expiration //–>
<?php
$expirationtime = get_post_custom_values(’expiration’);
if (empty($expirationtime)) {
$expirestring = ‘01/01/2020 00:00:00′;
} else {
if (is_array($expirationtime)) {
$expirestring = implode($expirationtime);
}
}
$secondsbetween = strtotime($expirestring)-time();
if ( $secondsbetween > 0 ) { ?>
<!–// End of post expiration //–>

<div class=”post” id=”post-<?php the_ID(); ?>”>

接著找往下找 <?php endwhile; ?>,找到後在它的上面一行貼上 <?php } ?>:

<?php } ?>
<?php endwhile; ?>

這樣文章迴圈就改完了。以後只要你在你要設定會過期的文章的自訂欄位(Custom Field)裡,增加一個欄位名稱(Key)叫 expiration,然後欄位內容就以 mm/dd/yy h:m:s 的格式輸入讓文章過期的時間,這樣時間一到文章就不會從迴圈裡面再把它撈出來了。但相對的,其它含有迴圈的佈景檔案也是需要修改的。

好文推介:
  • Hemidemi
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Haohao
  • Live
  • N4G
  • MyShare
  • Technorati

相關文章

本篇文章的作者為:

A`Vai Poitsonu - 共發表了 117 篇文章於 骯髒園丁的工寮.


聯絡作者

blog comments powered by Disqus

關於園丁

暱稱 》骯髒園丁|
星座 》獅子座|
興趣 》音樂|電影|網路|

■■喜歡胡思亂想的大男生,鐘情自然、熱愛淋雨,常會認為自己是從地底洞穴移居到地表的爬蟲動物。目前定居在骯髒工寮內,寫自己喜歡說的事情。

■■如果有事,你可以在進入雅虎森林之後,將信件投遞至上面刻著 poitsonu(a)yahoo.com 的巨石後方,自然就有精靈差使會將信送到我這裡 …

推特園丁

文章彙整

藏書隨選

尷尬網誌寫作者互助協會 尷尬聯播網

文章分類

SEO Powered by Platinum SEO from Techblissonline