我正在使用Transients API 保存我创建的库插件的短代码的输出。由于使用的图像数量和所需的布局不同,临时名称如下所示:
_transient_galleries_single_shortcode_5183five
So-the
int
部分是它引用的帖子ID
five
是此特定短代码的列设置。我遇到的麻烦是在保存引用的库时刷新这些短代码。
我通常会这样做:
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\');