Оптимизация запроса для отображения последних сообщений со ссылкой «Просмотреть все», когда количество записей превышает настройку maxpost - PullRequest
0 голосов
/ 25 марта 2010

У меня есть настройка в моей теме, которая позволяет владельцу сайта устанавливать максимальное количество сообщений ($maxPosts) для отображения в меню «Последние сообщения». Я использую собственный скрипт для генерации последних постов (потому что виджет Recent Posts не выделяет текущую страницу, которая мне нужна для моей css).

Мое меню также настроено для отображения ссылки «Просмотреть все» под списком сообщений, но только если фактическое количество сообщений составляет > $maxposts.

Я пытаюсь найти лучший способ получения количества сообщений и сравнения его с $maxposts, чтобы определить, показывать или нет ссылку "Просмотреть все".

Я уверен, что, возможно, есть лучший способ, но вот мой код. Я ищу, чтобы оптимизировать его для поддержки очень большого количества сообщений:

$cat=get_cat_ID('excludeFromRecentPosts'); 
$catHidden=get_cat_ID('hidden');
$myquery = new WP_Query();
$myquery->query(array(
    'cat' => "-$cat,-$catHidden",
    'post_not_in' => get_option('sticky_posts')
));
$myrecentpostscount = $myquery->found_posts;
if ($myrecentpostscount > 0) 
{
//show the menu

if ($myrecentpostscount > $maxPosts)
{
//show "View All" link
}
}

Мне действительно нужно только определить, больше ли общее количество сообщений в запросе, чем значение maxPost, чтобы определить, показывать ли ссылку «Просмотреть все», поэтому я пытаюсь оптимизировать сценарий для учетной записи для случая, когда могут быть тысячи сообщений, соответствующих критериям.

И в этом случае, чтобы избежать проблем с производительностью, мне не нужно подсчитывать их все. Мне просто нужно подсчитать до момента maxPosts + 1, и вот тут я немного борюсь, потому что пользователь может выбрать maxPosts = -1, что означает, что он хочет показать все сообщения. Но это было бы непрактично, поэтому я бы, вероятно, установил верхний предел 20, когда maxPosts = -1.

1 Ответ

0 голосов
/ 25 марта 2010

Я бы порекомендовал изучить фактический оператор SQL, который генерируется в результате этого запроса; затем вы можете увидеть, есть ли что оптимизировать. «Закон утечек абстракций» по-прежнему действует ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...