Кеширование медленного запроса к БД в wordpress
-
На сайте согласно Query Monitor есть медленный запрос, который создается плагином WordPress Download Manager. Источник вызова — count_user_posts
SELECT COUNT(*) FROM wp_posts WHERE ( ( post_type = 'wpdmpro' AND ( post_status = 'publish' OR post_status = 'private' ) ) ) AND post_author = 1
Почитав в интеренете информацию, понял, что его можно закешировать wp_cache_get, тем более на сервере используется редис. Но не понял, как это сделать правильно. Создать функцию и вставить в function.php? Нашел такой пример, но затрудняюсь его подредактировать на свои данные.
function prefix_get_post_count( $post_status = 'publish' ) { $cache_key = 'prefix_post_count_'. $post_status; $_posts = wp_cache_get( $cache_key ); if ( false === $_posts ) { $_posts = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = 'post' AND post_status = %s", $post_status )); wp_cache_set( $cache_key, $_posts ); } return $_posts; }
Подскажите, пожалуйста, какой должен быть код.
Просмотр 4 ответов — с 1 по 4 (всего 4)
Просмотр 4 ответов — с 1 по 4 (всего 4)
- Тема «Кеширование медленного запроса к БД в wordpress» закрыта для новых ответов.