我有以下代码:
$querystr = "
SELECT *
FROM {$wpdb->prefix}posts
INNER JOIN {$wpdb->prefix}postmeta m1
ON ( {$wpdb->prefix}posts.ID = m1.post_id )
INNER JOIN {$wpdb->prefix}postmeta m2
ON ( {$wpdb->prefix}posts.ID = m2.post_id )
WHERE
{$wpdb->prefix}posts.post_type = \'produits\'
OR {$wpdb->prefix}posts.post_type = \'coupsdecoeur\'
AND {$wpdb->prefix}posts.post_status = \'publish\'
GROUP BY {$wpdb->prefix}posts.ID
ORDER BY {$wpdb->prefix}posts.post_date
DESC;
";
当加载包含如此慢的WWW的页面时,有什么技巧可以优化它吗?
我只需要帖子标题和一个名为“wpcf lien”的元值。
非常感谢。
SO网友:Geert
查询本身可能需要优化(虽然SQL不是我的专长)。但是,不要忘记,您可以将昂贵操作的结果存储在缓存内存中。WordPress提供Transients API 让事情变得简单。下面是一个简单的例子:
// Try to load the value from cache
$transient_key = \'my_query\';
$value = get_transient( $transient_key );
// If no cached value was found, perform the query and cache it
if ( false === $value ) {
$value = $wpdb->get_results( \'SELECT * FROM ...\' );
set_transient( $transient_key, $value, HOUR_IN_SECONDS );
}