У меня есть настройка в моей теме, которая позволяет владельцу сайта устанавливать максимальное количество сообщений ($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
.