2013-02-23 60 views
0

我在我的一個網頁上有下面的代碼。當我使用 echo get_num_queries()時,此頁面顯示100個查詢。我試圖減少查詢的數量,但我無法找到它們都來自哪裏。Wordpress查詢和Get_Post_Meta

我唯一能想到的就是get_post_meta。每次都有get_post_meta運行查詢嗎?如果是的話還有更好的方法來做到這一點,所以我不會每次運行一個查詢?

<?php 
/* This is the second wordpress loop which will show only non paid dealers per the above wp_query in query_single. The 0 passed is non-paid dealers*/ 

    query_single('dealers', 'draft', '0', $taxtype, $value); 
?> 

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

<?php 
$address=get_post_meta($post->ID, 'wpcf-street_address', TRUE); 
$city=get_post_meta($post->ID, 'wpcf-city', TRUE); 
$state=get_post_meta($post->ID, 'wpcf-state_abbreviation', TRUE); 
$zip=get_post_meta($post->ID, 'wpcf-zip_code', TRUE); 
$phone=get_post_meta($post->ID, 'wpcf-phone_number', TRUE); 
$paid=get_post_meta($post->ID, 'wpcf-paid', TRUE); 
$post_id=get_the_ID(); 
get_each_dealer_brand($post_id);?> 

<ul class="ullisting"> 
<?php 
if($paid==0) { 

    echo "<li><p class=\"plisting\"><strong>";the_title();echo "</strong></p></li>"; 
    echo "<li><p class=\"plisting\">$address | $city, $state $zip</p></li>"; 
    echo "<li><p class=\"plisting\">P: $phone</p></li>"; 
    echo "<li><p class=\"listing\"><span><small>$brands_list</small></span></p></li>"; 
} 
?> 
</ul> 

回答

0

你可以通過調用get_post_meta一次減少你的查詢次數 - 這將抓住所有的相關領域:

// will have all of your fields and more in an array, with fewer queries called 
$post_meta = get_post_meta($post->ID); 
var_dump($post_meta); 

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

+0

謝謝你這麼多的建議。 – user1609391 2013-02-23 08:29:00