Приветствую вас, дорогие читатели!
В моей прошлой статье я рассказывала о том, как можно просто вывести записи из определённых рублик при помощи плагина. Этот способ достаточно удобный, но для его реализации нужно устанавливать дополнительный плагин, а это не очень хорошо.
Так как большое количество плагинов во-первых влияет на скорость загрузки вашего сайта, а во-вторых это делает ваш сайт более уязвимым.
Я не говорю что плагины это плохо, но перегружать ими сайт однозначно не стоит!
В данной статье я покажу вам ещё один простой способ вывоза записей из рубрики без использования плагина.
Навигация по статье:
Для этого способа нам нужно будет вставлять специальный код в определённое место шаблона. Если вы никогда раньше не работали с кодом шаблона и не имеете представления о структуре шаблона wordpress, то для вас этот способ будет намного сложнее чем первый и я бы не советовала его использовать.
В какой файл вставлять код?
Если вам нужно вывести рубрики только на главной, и в качестве главной страницы вы не назначали какую то определённую страницу, то данный код вам нужно будет вставлять в шаблон index.php в папке вашей темы.
Если ваша тема предполагает что для главной страницы выбирается определённы шаблон, то код нужно будет вставлять в файл данного шаблона.
Если нужно сделать вывод статей из определённой рубрики на всех страницах сайта, то код вставляем в шаблон page.php.
В какое место шаблона вставлять код?
Так как данный фрагмент кода содержит в себе цикл, то его нужно вставлять до или после основного цикла wordpress, который выводит контент самой страницы.
Можно это сделать почти в самом конце шаблона перед кодом:
1 2 |
<?php get_sidebar(); ?> <?php get_footer(); ?> |
Каждый шаблон уникален и имеет свои особенности, поэтому сказать однозначно куда именно нужно вставить код в вашем шаблоне я не могу. Здесь нужно поэкспериментировать и попробовать добавить код в разные участки кода вашего шаблона.
Код для вставки в шаблон
А вот и сам код:
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php query_posts('cat=5'); // вместо "5" указываем идентификатор вашей рубрики. while (have_posts()) : the_post();?> <!--в этой строке выводится название статьи и ссылка на неё--> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <!--здесь выводится миниатюра записи--> <div class="thumbnail"><?php echo get_the_post_thumbnail(); ?></div> <?php the_content(); // вывод текста записи endwhile; wp_reset_query(); ?> |
Этот код запускает цикл и выводит все записи из указанных категорий друг за другом.
Если нужно вывести записи из нескольких категорий, то ID категорий выводятся через запятую.
Например:
1 2 3 4 |
… <?php query_posts('cat=2,3,5'); while (have_posts()) : the_post();?> … |
Как узнать ID категории?
Для того чтобы узнать ID категории переходим в пункт меню «Записи» => «Рубрики», затем наводим курсор мышки на название нужной рубрики и в левом нижнем углу страницы появляется вот такой текст:
В этом тексте ищем «ID=» — то что стоит после знака равно и есть ID категории, в моём случае категория имеет ID “4”
На этом у меня всё. Надеюсь, что у вас не возникнет проблем с выводом статей из определённой рубрики. Если будут вопросы – то я всегда рада видеть их в комментариях.
Если статья вам помогла, то обязательно делитесь ей в соцсетях.
Желаю вам хорошего настроения и продуктивной работы над своим сайтом!
С уважением Юлия Гусарь
А как ограничить количество записей? Например на главной я хочу вывести две или три новости из рубрики с помощью вашего кода?
А так спасибо за код, расширить возможности вордпресс с ним очень легко. Респект
Здравствуйте, Игорь!
Хотела бы уточнить Вы хотите чтобы выводились эти 2 или 3 записи с постраничной навигацией внизу или без неё? Вам нужно ограничить количество записей на странице или конкретно для этих категорий (категории)?
В первой строчке к query_posts(‘cat=3’); добавить &posts_per_page=4 . Т.о. должно получиться query_posts(‘cat=3&posts_per_page=4’);
Цифра «4» — количество выводимых записей
«А как ограничить количество записей? Например на главной я хочу вывести две или три новости из рубрики с помощью вашего кода?»
Аналогичная задача. Было бы неплохо, если бы можно было выводить только нужное количество записей, а все остальные записи открывать, например, просто перейдя по ссылке на другую страницу. В общем, нужно только иметь возможность ограничить число выводимых записей (без других «наворотов»)).
Помогите разобраться в рубрике выводится все полностью статья а хотелось бы только один дескрипшен или первые строки.
Для этого нужно в коде вместо the_content(); использовать the_excerpt();
подскажите плиииз в каком файле можно найти и поменять the_content() на the_excerpt() ?? У меня в archive.php нет таких значений…
Что вы подразумеваете под «поменять»? Это стандартные функции WordPress
Подскажите, как выводить новые статьи категории, которая открыта?
Я не поняла ваш вопрос.
Например, захожу на страницу статьи, которая относится к категории 1, и мне предлагаются ещё анонсы свежих статей только категории 1. Перехожу на страницу стати, которая относится к категории 2, и мне предлагаются анонсы свежих статей только категории 2
У меня на сайте это реализовано вот так:
а как сделать постраничную навигацию? подскажите пожалуйста
А у Вас тема скачана из репозитория или самописная?
из нескольких кодов, найденных в интеренетах — только ваш код справился с задачей, правда не с первого раза — пришлось поэкспериментировать с местом — куда вставлять код, но всё получилось
Отлично! Спасибо!
Нужна помощь. Необходимо на необходимую страницу выводить записи из определенных категорий с дизайном как при просмотре категории.
Здравствуйте, а как сделать чтобы в категориях не выводились записи стандартным путём, так как я туда добавил шорткод галлереи.
Спасибо! Действительно очень внятное объяснение
Спасибо, Майя!
Огромное спасибо за полезную информацию
Как сделать, чтобы на главной категории выводились записи только из главной категории, а на страницах подкатегорий записи из этих подкатегорий?
Здравствуйте, Игорь! В Вашем случае проще всего будет создать отдельную страницу «Главная» и на ней при помощи шорткода вывести записи из определенной рубрики или поискать плагин, который позволяет запретить вывод постов из определенных рубрик в блоге. В этом случае в основной ленте будут выводиться посты только из тех категорий, которые Вы разрешите, а посты из других категорий будут выводиться только на страницах этих категорий.
Здравствуйте, Юлия! Я уже нашёл на просторах инета код. Может кому-то пригодится:
function no_children( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_category() )
$query->set( ‘category__in’, array( get_queried_object_id() ) );
}
add_action( ‘pre_get_posts’, ‘no_children’ );
Большое спасибо, ЧЕЛОВЕК!
Спасибо, Павел!