0

私のページの1つに以下のコードがあります。このページには、を使用したときに100個のクエリが表示されています echo get_num_queries()。クエリの量を減らしようとしていますが、すべてのクエリがどこから来ているのかを見つけるのに問題があります。

私が理解できる唯一のことは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>
4

1 に答える 1

0

get_post_metaを1回呼び出すことで、クエリ数を減らすことができます。これにより、関連するすべてのフィールドが取得されます。

// 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

于 2013-02-23T08:06:03.550 に答える