私が作成したギャラリープラグインのショートコードの出力を保持するために トランジェントAPI を使用しています。使用される画像の数と必要なレイアウトが異なるため、一時的な名前は次のようになります。
_transient_galleries_single_shortcode_5183five
だから - 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');
私はこの道を行くことができるのを忘れた:
$wpdb->query( "DELETE FROM `$wpdb->options` WHERE `option_name` LIKE ('_transient_galleries_%')" );