using wp_cache in plugin

时间:2011-11-18 作者:madphp

我有一个从数据库返回的结果集。如何使用wp\\u缓存来加快速度?

function bb_attachments_cache() {
    global $wp, $bp, $wpdb, $posts, $bb_attachments, $bb_attachments_cache, $bbdb;


    $all_posts_query = "SELECT `post_id` FROM $bbdb->posts";
    $posts = $bbdb->get_results( $all_posts_query );
    foreach ($posts as $post)  {
        $bb_attachments_cache[$post->post_id] = array();
    }

    $sql = "SELECT 
        bba.id,
        bba.time,
        bba.post_id,
        bba.user_id,
        bba.user_ip,
        bba.status,
        bba.downloads,
        bba.size,
        bba.ext,
        bba.mime,
        bba.filename
    FROM bb_posts bbp
    JOIN bb_attachments bba
    ON bba.post_id = bbp.post_id
    ORDER BY id DESC";

    $attachments = $wpdb->get_results($sql);

    if ($attachments){

        foreach ($results as $result){
            $bb_attachments_cache[$result->post_id][$result->id] = $result;
        }
        unset($attachments);

    }

}
如果附件表有任何更新,我想设置缓存对象。我使用wordpress 3.1,并安装了一个缓存插件。

1 个回复
SO网友:Tom J Nowell

如果您使用BBpress 2,BBpress 2将使用自定义帖子类型,并且是WordPress的插件。这将允许您使用标准WordPress调用和WP\\U查询执行上述查询。然后,您将自动继承WordPress使用的所有缓存系统,并支持W3 Total Cache DB caching等功能

否则,您可以使用Wordpress Transients API缓存结果:

http://codex.wordpress.org/Transients_API

结束

相关推荐

Integrating plugins in themes

我找不到讨论这个的帖子,所以开始这篇。我目前正在为3.1+开发一个相当复杂的主题,我的意思是,除了样式和常规的前端功能之外,我还在主题的核心包括后端和前端的插件。因此,为了使这一点更有条理,我将其分为三个问题:集成插件是一种常见的做法吗</自动更新主题/插件有什么影响/复杂之处</在不破坏现有功能的情况下,包含每个插件的最佳方式是什么