2012-08-09 118 views
0

任何人都可以指向正確的方向嗎?我試圖讓分頁工作,因爲我只是在頁面上有太多條目(請參閱下面的示例頁面的鏈接),但完全在雜草中。FOREACH循環中的分頁

這是一個歸檔頁面,該頁面根據自定義字段(開始日期)列出自定義帖子,並在開始日期過後將其從列表中刪除。

下面是一個示例頁面: http://www.musicfestivaljunkies.com/festival-guide/us-festivals/

這是我一直使用的代碼:

<?php 
    /** 
    * Do we need to filter by event tag? 
    */ 
    if(is_tax('event_tags')) : 
$tag = strip_tags(get_query_var('event_tags')); 

$querystr = " 
    SELECT wposts.* 
    FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta, $wpdb->terms wterms, $wpdb->term_taxonomy wtax, $wpdb->term_relationships wrels 
    WHERE wposts.ID = wpostmeta.post_id 
    AND wterms.term_id = wtax.term_id 
    AND wtax.term_taxonomy_id = wrels.term_taxonomy_id 
    AND wrels.object_id = wposts.ID 
    AND wterms.slug = '$tag' 
    "; 

    else: 
$querystr = " 
    SELECT wposts.* 
    FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta 
    WHERE wposts.ID = wpostmeta.post_id"; 
    endif; 

    // Build the rest of the query, i.e. only get events with dates, and order newest first. 
$querystr .= " 
AND wpostmeta.meta_key = 'Date' 
AND STR_TO_DATE(wpostmeta.meta_value,'%m/%d/%Y') >= CURDATE() 
AND wposts.post_status = 'publish' 
AND wposts.post_type = 'events' 
ORDER BY STR_TO_DATE(wpostmeta.meta_value,'%m/%d/%Y') ASC 
"; 


$events = $wpdb->get_results($querystr, OBJECT); 

if ($events): 
echo '<ul>'; 
foreach ($events as $post): 
    global $post; 
    setup_postdata($post); 

    // Get a friendlier version of the date. 
    $date = get_post_meta($post->ID, 'Date', true); 
    $date = date_create($date); 
    $date = date_format($date, 'jS F, Y'); 
    ?> 

    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> - <?php echo $date; ?></li>  
<?php endforeach; 
echo '</ul>'; 
    endif; ?> 

回答

0

除非你正在試圖獲得一些嚴重的獨特的數據,編寫自己的查詢通常是在WordPress中要避免的事情。在這種情況下,您需要查看get_posts()方法(http://codex.wordpress.org/Template_Tags/get_posts)。我不是100%確切地知道你需要哪些參數來實現你的目標,但絕對要先看看'post_type'參數,以及'meta_key'和'meta_value',你可以用它來查找內部的帖子一個特定的自定義類型,它們具有特定的元值(這看起來至少部分是你期望完成的)。

如果這不能讓你朝着正確的方向前進,請讓我知道你想要更具體地做些什麼,也許我可以進一步澄清。

更新:get_posts的這一部分()DOC應與自定義字段具體幫助,並作爲獎勵它使用自定義post_type還有:http://codex.wordpress.org/Template_Tags/get_posts#Custom_Field_Parameters