うまくいけば、このシナリオで私を助けることができます:
ショートコード関数内に異なる投稿タイプのクエリがいくつかあります。今、これらのクエリをトランジェントで保存しようとしています。ただし、これらのトランジェントには、ショートコードが呼び出されるページごとに一意の名前が必要です。
$trans_posts_golfcourse_ = 'trans_posts_golfcourse_'.$landingpage;
if( false === ( $$trans_posts_golfcourse_ = get_transient( 'trans_posts_golfcourse_' ) ) ) {
$args = array (
'posts_per_page'=> 5,
'post__in' => $posts_golfcourse,
'post_type' => 'golfcourse',
'post_status' => 'publish',
'cache_results' => false,
);
$$trans_posts_golfcourse_ = new WP_Query( $args );
set_transient( 'trans_posts_golfcourse_', $$trans_posts_golfcourse_, 60*60*4 );
}
動的に生成される変数名は
$$trans_posts_golfcourse_
しかし、これはパラメータとしてどのように見える必要がありますか?:
get_transient( 'trans_posts_golfcourse_' )
前もって感謝します!
編集: パラメータとしての動的変数の解決策が見つかりまし た パラメータ(文字列)は、変数名と同じ方法で生成する必要があります:
get_transient( 'trans_posts_golfcourse_'.$landingpage )
完全なコード:
$trans_posts_golfcourse_ = 'trans_posts_golfcourse_'.$landingpage;
if( false === ( ${$trans_posts_golfcourse_} = get_transient( 'trans_posts_golfcourse_'.$landingpage ) ) ) {
$args = array (
'posts_per_page'=> 5,
'post__in' => $posts_golfcourse,
'post_type' => 'golfcourse',
'post_status' => 'publish',
'cache_results' => false,
);
${$trans_posts_golfcourse_} = new WP_Query( $args );
set_transient( 'trans_posts_golfcourse_'.$landingpage, ${$trans_posts_golfcourse_}, 60*60*4 );
}
EDIT:トランジェントは正しく呼び出されているようですが、トランジェントはクエリを減らしていません。誰かアイデアがありますか?