В этой статье мы разделяем анонс и цитату в шаблоне WordPress, для того, чтобы в блоге последних записей выводить анонс статьи (текст до тега more), а в архивах сайта выводить заранее заданную цитату. При этом сделаем так, чтобы анонс не попадал в саму статью. Тем самым мы создадим три различных уникальных содержания: анонс, цитата, статья.
Основные понятия
Анонс – вступление к статье, от статьи отделяется тегом [more]. По умолчанию анонс виден на главной странице, страницах архивов и в самой статье.
Цитата – дополнительное поле, необязательное к заполнению. В зависимости от верстки шаблона может выводиться в архивах сайта.
Проблему дублирования анонсов я недавно поднимал в статье: Проблема дублирования WordPress.
Итак, анонс и цитата. Идея этой статьи, разделить анонс и цитату и четко сделать так, чтобы:
- Анонс показывался в блоке последние записи (главная страница сайта),
- Цитата выводилась в архивах сайта (архив разделов, тегов, автора).
Тема статьи связана с редакцией кода шаблона, поэтому перед работой нужно сделать полную резервную копию сайта.
Часто, при заполнении цитаты, которая не обязательна, но предусмотрена в WordPress, на главной странице выводится вместо анонса цитата. Такая верстка шаблона ломает основную идею статьи: использования цитаты, как вступление в архивах сайта, а анонса, как вступление в блоге главной страницы. Дополнительная идея: исключить из текста статьи анонс и цитату.
Как разделить анонс и цитату
Цитату из статьи убирать не нужно. Я не встречал, чтобы так верстали шаблон. Другое дело, анонс статьи. Под анонсом понимаем часть статьи отделенного от основной статьи тегом [more]. Синтаксис тега:
<!--more-->
Итак, установив тег [more] вы отделяете анонс статьи. При этом, по умолчанию, анонс будет виден в блоге последних записей и одновременно будет показан в основной части статьи.
Идея этой статьи, разделить анонс, цитату и основное содержание. Тем самым, повысить уникальность сайта. При это не нужно будет закрывать в файле robots.txt от поисковиков архивы сайта и получим уникальный блок анонсов последних записей. Если учесть, что этот блог делают главной страницы сайта, получаем уникальную главную страницу сайта. Для решения задачи, нам нужно последовательно посмотреть два файла:
- Файл Архивы (archive.php): выводит архивы сайта;
- Файл шаблона рубрик (category.php) – его может и не быть. Если этого файла в шаблоне нет, архив категорий выводит файл archive.php;
В файле archive.php, ищем функцию [get_template_part]. Эта функция «берет» часть шаблона с другого файла и применяет в архивах.
Покажу на примере:
get_template_part( 'content', get_post_format() );
Читаем: это значит, что в архиве будет выводится часть текста определенного в файле под названием [content].
- Открываем файл [content] для дальнейшего редактирования.
- Для безопасности копируем файл [content] и открываем его в текстовом редакторе (например, Notepad++).
- В файле [content] нам нужно найти функции [the_excerpt()] и [the_content()]. Они или она, будут после блока [head].
Важно понять идею!
Мы не будем исправлять файлы шаблона (код шаблона). Мы дополним шаблон новым файлом. Это простой способ, не требует особых знаний php и не тянет за собой целую цепочку исправлений.
Для этого:
- Копию файла [content], открываем в Notepad++ и переименовываем, в файл, например [content-abc];
- Функцию [the_content()] меняем на [the_excerpt()];
- Сохраняем новый файл [content-abc] в формате [php];
- Заливаем файл [content-abc] по FTP в каталог сайта, в папку themes/ваша_тема.
- Идем в редактор административной части сайта Внешний вид→Редактор, и видим появление этого файла;
- Открываем файл archive.php. В той самой функции [get_template_part], которую мы нашли ранее, меняем название, в моем примере, [content] на [content-abc];
Нам удалось разделить анонс и цитату в шаблоне WordPress. Теперь в архивах вместо анонса будут выводиться цитаты.
Важно! Шаблон может быть сверстан в сложном варианте. Автор шаблона мог разделить вывод: архивов, категорий, тегов и т.д. Поэтому блок категорий может выводить не файл archive.php, а файл category.php. Для примера я взял шаблон nirvana. В нем вместо стандартного набора из 18 файлов, автор создал, 40 файлов php.
Как убрать цитату и анонс из текста статьи
Осталось последнее замечание. Если хотите чтобы анонс статьи не попадал в саму статью, то отделяйте анонс не тегом <!-more->, а двойным тегом <!-more-><!-noteaser->. Об этих тегах ТУТ.
WordPress Codex
- Записи не найдены
Источник: www.wordpress-abc.ru