Как легко исключить записи определенных категорий с главной страницы

Автор:
Nurlan Kemelbekov

Здесь, на maks-1.com, используется WordPress потому. как экономически эффективная (т.е. бесплатно!) система управления контентом (CMS). WordPress является очень гибкой, но, будучи с открытым исходным кодом качество документации может быть немного неоднородным.

Один из самых распространенных запросов, как исключить записи (статьи) определенных категорий с главной страницы. Это на самом деле очень легко, если вы знаете, как исключить.

Шаблон главной страницы (index.php) будет включать в себя то, что известно как «loop», и это та часть, которая тянет содержания из базы данных. Это должно выглядеть примерно так:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>

Для исключения категорий, необходимо добавить запрос, прежде чем сказать WordPress, что исключить следующим образом:

<?php
if (is_home()) {
query_posts("cat=-1,-2,-3");
}
?>

Приведенный выше пример взят из WordPress Codex и вернет все сообщения, за исключением категорий с идентификатором 1, 2 и 3.

Другие статьи по теме: Как исключить категории и теги из виджетов

WordPress Кодекс и практически все учебники, которые я видел не предупреждают, что это нарушит навигацию страниц. Я имею в виду ссылки  Вперед/ Назад. Ссылки этих навигаций сломаются и, кликая на них просто попадете на ту же страницу, а не на старые или новые публикации.

Чтобы исправить эту проблему, необходимо внести изменения в этот код так:

<?php
if (is_home()) {
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("paged=$page&cat=-1,-2,-3");
}
?>

В файле index.php этот код может выглядеть примерно так:

index.php

Это дополнение позволит WordPress знать, что эти страницы должны быть пронумерованы, чтобы ссылки на старые записи / новые записи были правильными.



Вам также может понравиться:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

* Copy This Password *

* Type Or Paste Password Here *

7 + тринадцать =

Я просто хотел сказать, как сильно я ценю Ваш комментарий на мой пост. Спасибо Вам !!