Flush_Widget_Cach已弃用。我应该使用哪种方法呢?

时间:2016-12-28 作者:thunder

我的主题的评论家告诉我flush_widget_cache() 我在我的一个小部件中使用的,自版本4.4以来就被弃用了。我在codex上搜索过这个方法,但只有一个描述,说明这个函数已被弃用,仅此而已。

谁能告诉我应该用哪种方法来代替flush_widget_cache()?

以下是我的小部件中的代码spinet(最近的帖子):

function update( $new_instance, $old_instance ) {
        $instance = $old_instance;
        $instance[\'title\'] = strip_tags($new_instance[\'title\']);
        $instance[\'number\'] = (int) $new_instance[\'number\'];
        $instance[\'show_date\'] = (bool) $new_instance[\'show_date\'];
        $this->flush_widget_cache();

        $alloptions = wp_cache_get( \'alloptions\', \'options\' );
        if ( isset($alloptions[\'widget_recent_entries\']) )
            delete_option(\'widget_recent_entries\');

        return $instance;
    }

    function flush_widget_cache() {
        wp_cache_delete(\'widget_recent_posts\', \'widget\');
    } 
谢谢。

1 个回复
SO网友:Mark Kaplun

真正的问题是,为什么要缓存任何内容。如果小部件是一个常见的“最近的帖子”,那么您所做的所有实际对象缓存大多是在您查询帖子时在“WP\\u query”中所做缓存的重复。或者换句话说,最简单的解决方案是删除与缓存相关的代码。

Update

正如@jami0821在评论中指出的,主题检查工具的最新版本会删除该特定检查,因此您可能会要求审阅者确保他使用的是最新版本。尽管如此,仍然没有理由保留该代码。