Хочу обговорить одну интересную тему, которую можно реализовать на любом шаблоне WordPress. Тема вот о чем – по умолчанию в WordPress выводится определенное количество записей на всех страницах сайта – и на главной (если ее выбрали для отображения), и на страницах записей, и на страницах рубрик, меток и архивов. Число этих анонсов или полных записей (кому как удобно) можно установить в панели администратора очень просто, и вы все знаете, как:

анонсы в WordPress

Это универсальный способ, но очень часто он не очень удобен, так как эти десять записей, которые вы выставили для отображения, не всегда занимают полную страницу на разных шаблонах. Я имею в виду, что на главной эти записи могут занимать всю страницу, а в архивах или при выводе рубрики – только часть ее, и иногда меньшую часть, что выглядит некрасиво – полстраницы пустует. Особенно это заметно на многоколоночных шаблонах, или если вы прилепили одну или несколько записей на главную – на остальных страницах сайта эти прилепленные записи не будут отображаться, и образуется пустота внизу страницы. Лично меня это несколько раздражает, вот я и занялся поиском исправления этой проблемы.

Долго искать не пришлось – в рунете много талантов. Проблема решается небольшим фрагментом кода, который нужно вставить в файл functions.php. Сейчас покажу код, и расскажу, что там важно для вашего шаблона – может быть, вам придется подправить количество выводимых записей для разных страниц. Это вы уж сами будете определять по своему шаблону, сколько на каждой странице должно выводиться анонсов или полных статей. Вот код:

 
function custom_posts_per_page($query){
    if(is_home()){
    $query->set('posts_per_page',8);
    }
    if(is_search()){
        $query->set('posts_per_page',-1);
    }
    if(is_archive()){
        $query->set('posts_per_page',25);
}//endif
}//function

//this adds the function above to the 'pre_get_posts' action     
    add_action('pre_get_posts','custom_posts_per_page');

Вы задействуете несколько операторов — is_home (для главной), архивов (is_archive) и is_search (страницы поиска), а значение posts_per_page отвечает за количество анонсов. А теперь – по порядку:

  1. В строке if(is_home()) число 8 определяет, сколько будет выводиться анонсов на главной странице.
  2. В строке if(is_search()) вы указываете количество результатов поиска – сколько будет выводиться результатов для любого поискового запроса по сайту. Здесь эта функция особенно важна, так как результаты выдаются в укороченном виде, и часто занимают вообще мало места на странице. Да к тому же могут показываться не все результаты, поэтому рекомендую поставить -1 – это выведет все результаты поиска без ограничений.
  3. Строка if(is_archive()) отвечает за количество анонсов на страницах рубрик, меток, архивов записей, архивов рубрик и архивов меток.

Для каждого шаблона будет свое количество записей на разных страницах – нужно подбирать путем эксперимента. Так, на одном моем сайте стоит многоколоночный шаблон – два сайдбара слева, два справа, и посредине вывод контента. К тому же, количество сайдбаров на разных страницах можно регулировать, поэтому получается, что на главной у меня полная страница контента, а на выводе рубрики внизу остается место – просто не все сайдбары отображаются, и соответственно, колонка контента расширяется. Этот кусок кода очень мне помог сделать шаблон визуально приятнее, чего и вам желаю.

Еще одно – не забывайте о возможном глюке – если вы поставите в стандартных настройках WordPress одну цифру, а в этом фрагменте – другую, то движок может растеряться и присваивать какое-то одно значение. Не давайте своему WordPress повода для глюков – ставьте одинаковые значения. Если в настройках чтения поставили число 10, то и для главной страницы тоже ставьте 10. Удачи вам в освоении этого хака!