WP Redisを使用して、キーが$ query_vars_hashの$ wp_queryオブジェクト全体をキャッシュしようとしています。
これは以下$wp_query
に追加された方法$wp_object_cache
です:
add_action('wp', function($wp)
{
if ( is_admin() ) return;
global $wp_query;
if ( !wp_cache_get($wp_query->query_vars_hash, 'globals') )
{
wp_cache_add($wp_query->query_vars_hash, $wp_query, 'globals');
}
});
次に、WP_Query
投稿を取得する前に、クエリが既にキャッシュされているかどうかを確認する必要があります。
add_action('pre_get_posts', function($query)
{
if ( is_admin() ) return;
$cached_query = wp_cache_get($query->query_vars_hash, 'globals');
if ($cached_query)
{
$GLOBALS['wp_query'] = &$cached_query;
return; // Return immediately to prevent retrieving posts again.
}
});
問題点:
return
またはexit
この場合は機能しません。その後、WP_Query
データベースにアクセスして投稿を再度取得します。
質問:
プラグインに関係なく、WP_Query
投稿の取得を完全に停止することは可能ですか?
return
、この場合に呼び出すことができる唯一のコマンドかもしれません。