2015-01-20 75 views
0

我在一個網站上工作並構建一個自定義的帖子類型。在此自定義帖子類型中,我添加了一個元字段,您可以從1到16中選擇一個數字。這些數字與我主頁上的特定位置相對應。但現在我的問題出現了。我如何在這些特定職位中查詢這些職位而不必重複自己。基於元值的wordpress查詢

因此,例如...

這裏與meta值1 這裏與meta值2 這裏meta值後後後3

等..

希望有人可以幫助我一點點

回答

0

有幾種方法可以解決這個問題,這取決於佈局邏輯的複雜程度。如果你基本上只是通過以16個職位需要循環,則可以使用orderby參數在查詢到的帖子進行排序:

$args = array(
       'post-type' => 'YOUR_POST_TYPE', 
       'orderby' => 'meta_value_num', 
       'meta_key' => 'YOUR_METAFIELD_SLUG' 
     ); 

$customposts = new WP_Query($args); 
while($customposts->have_posts()): $customposts->the_post(); 

// loop goes here 

如果你需要更復雜的東西,你也許能避免重複查詢通過查詢一次,然後使用條件來檢查元值。例如,用上面的例子查詢...

// Position 1 on your page 

<div class="position-1"> 

<?php 
while($customposts->have_posts()): $customposts->the_post(); 
$meta_value = get_post_meta(get_the_ID(), 'YOUR_METAFIELD_SLUG', true); 

// Only print something here if the meta value is what we want 
if($meta_value == 1) : 
    the_title(); 
    the_content(); 
endif; 

// Reset the loop 
$customposts->rewind_posts(); ?> 

</div> 

// Position 2 on your page 

<div class="position-2"> 
<?php 
while($customposts->have_posts()): $customposts->the_post(); 
$meta_value = get_post_meta(get_the_ID(), 'YOUR_METAFIELD_SLUG', true); 
if($meta_value == 2) : 
    the_title(); 
    the_content(); 
endif; 

// Reset the loop again 
$customposts->rewind_posts(); ?> 

....等等。

您可能會發現這些有用的:

http://codex.wordpress.org/Function_Reference/get_post_meta

http://codex.wordpress.org/Class_Reference/WP_Query

+0

感謝這個快速的解答。我一定會使用你的第二個例子,並使用標題和內容的模板部分來幹一點幹。再次感謝 – Toasty 2015-01-21 07:53:08

+0

後置類型應該是post_type。還是謝謝 – Toasty 2015-01-21 08:11:56