将通配符与DELETE_TRANSPENT()配合使用

时间:2012-11-19 作者:Zach

我正在使用Transients API 保存我创建的库插件的短代码的输出。由于使用的图像数量和所需的布局不同,临时名称如下所示:

_transient_galleries_single_shortcode_5183five
So-theint 部分是它引用的帖子IDfive 是此特定短代码的列设置。我遇到的麻烦是在保存引用的库时刷新这些短代码。

我通常会这样做:

function galleries_delete_transient($post_id) {
    switch (get_post_type()) {
        case \'galleries\':
            delete_transient(\'galleries_single_shortcode_\'.$post_id);
        break;
    }
}
add_action(\'save_post\',\'galleries_delete_transient\');
这里的问题是,根据某个页面的需要,列设置可能会有所不同,所以我想知道是否有任何类型的通配符可以用于这里,使其更具动态性(只需清除所有的通配符,例如delete_transient(\'galleries_single_shortcode_\'.$post_id%);). 任何帮助都将不胜感激。谢谢

更新添加的完整快捷码功能,以明确所有内容的构造方式:

function galleries_single_shortcode($atts, $content = null) {
    extract(shortcode_atts(array(
            "id"     => \'\',
            "columns" => \'four\'
    ), $atts));

    global $galleries_options;

    $galleries_single_shortcode_output = get_transient(\'galleries_single_shortcode_\'.$id.$columns);
    if ($galleries_single_shortcode_output === false) {

        ob_start();

        // OUTPUT HERE

        $galleries_single_shortcode_output = ob_get_contents();

        ob_end_clean();

        set_transient(\'galleries_single_shortcode_\'.$id.$columns, $galleries_single_shortcode_output, 60 * 60 * 24);

    }


    return $galleries_single_shortcode_output;
}
add_shortcode(\'galleries_single\', \'galleries_single_shortcode\');

1 个回复
最合适的回答,由SO网友:Zach 整理而成

忘了我可以走这条路线:

$wpdb->query( "DELETE FROM `$wpdb->options` WHERE `option_name` LIKE (\'_transient_galleries_%\')" );

结束

相关推荐

有没有人在Dreamhost VPS上成功地使用了WordPress插件w3-Total-cache?

Dreamhost鼓励我使用FCGI、XCache和w3 total cache。但我不确定最佳设置是什么,尤其是对象和数据库缓存。有什么建议吗?此外,我无法消除此错误消息:Recently an error occurred while creating the CSS / JS minify cache 我也无法获取日志文件以显示。。。