2010-08-03 78 views
1

我有一個事件類別可以通過子類別(按事件舉行的城市)進行搜索。我有'未來就是現在!'插件允許我發佈未來的日期帖子,但希望我可以設置一個分頁模板,當一個帖子「過期」時,它不會再出現在循環/存檔中。(WordPress的)只顯示在檔案和搜索結果的未來職位

我也想知道你是否可以從搜索結果中濾除這些帖子?

這是我目前活動頁面代碼,如果這有助於:

<h2>Upcoming Events</h2> 
     <ul class="posts"> 
      <?php 
      $limit = get_option('posts_per_page'); 
      $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
      query_posts('showposts=' . $limit . '&paged=' . $paged .'&cat=1&order=ASC'); 
      $wp_query->is_archive = true; $wp_query->is_home = false; 
      ?> 
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
       <li class="events_ticker" id="post-<?php the_ID(); ?>"> 
       <span class="left"> 
       <h3><?php the_time('F jS, Y') ?></h3> 
       <p><?php if (strlen($post->post_title) > 25) { echo substr(the_title($before = '', $after = '', FALSE), 0, 25) . '...';} else {the_title();} ?></p> 
       <?php global $more; $more = 0; the_excerpt(); ?> 
       <p><a href="<?php echo get_permalink(); ?>">Read More</a></p> 
       </span> 
        <a href="<?php echo get_permalink(); ?>"><?php if (function_exists("has_post_thumbnail") && has_post_thumbnail()) { the_post_thumbnail(array(143,110), array("class" => "right post_thumbnail")); } ?></a> 
       </li> 
       <img src="<?php bloginfo('stylesheet_directory'); ?>/images/content_breaker_wide.png" alt=" breaker" class="content_breaker" /> 
      <?php endwhile; ?> 
     </ul> 
     <!-- end events loop --> 
     <div class="navigation"> 
      <p class="alignleft"><?php next_posts_link('< Next') ?></p> 
      <p class="alignright"><?php previous_posts_link('Next >') ?></p> 
     </div> 

<?php endif; ?> 

回答

0

我不認爲有一個簡單的參數,說:「所有的帖子在此日期之前」,所以你應該實現posts_where_paged過濾器。在那裏,你可以檢查!(is_archive() || is_search()),因爲這兩個可以像往常一樣繼續。對於其他部分,您添加" AND $wpdb->posts.post_date < NOW()"或類似的東西(但現在不要使用,因爲這會隱藏今天晚些時候發生的事件,而且您可能不希望這樣)。

A similar question was asked on the WordPress Answers Stack Exchange site(在2010年8月20日之前的私人測試版中,除非您預先註冊,否則無法訪問它)。喬·霍伊爾的建議有很簡單:

如果所有你想要做的就是添加一個 額外的日期爲「表演時間」,它可能是 容易添加元框它確實 正是 - 使用發佈日期 欺騙也可能是潛在的 問題,因爲WordPress會設置 每當它 更新,未來的出版日期「未來」狀態(我 認爲),那麼你將不得不掛鉤 每次帖子被更新以將其重新設置爲 。同樣,你可以用 保留「發佈日期」,它是 的意圖。

我可能只是使用一個meta_key, 和一個自定義元框。雖然它 取決於你的查詢有多複雜, 顯示帖子。

如果設置meta_value爲 時間戳,您可以通過展會 時間日期還是訂購,或選擇之前一定日期後/ :

$events = get_posts('post_type=events&meta_key=show_time&meta_value=' 
. strtotime('+1 week') . 
'&meta_compare=<&orderby=meta_value'); 

會得到所有的「事件」有showtime 不晚於當前的 日期一週。注:以上是未經測試,但 應該工作:)

(這個答案是社區維基所以我沒有得到的只是重新發布什麼喬說代表處點。)