На сайте согласно 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;
}
Подскажите, пожалуйста, какой должен быть код.