[英]Wordpress Query and Get_Post_Meta
我的其中一頁上有以下代碼。 當我使用echo get_num_queries()
時,此頁面顯示100個查詢。 我正在嘗試減少查詢的數量,但是我很難找到所有查詢的來源。
我唯一能想到的就是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>
您可以通過一次調用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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.