WordPress как изменить шаблон рубрики

Часто бывает необходимо задать для отдельных записей, страниц или рубрик уникальный дизайн. Например, можно изменить внешний вид какой-то конкретной

Часто бывает необходимо задать для отдельных записей, страниц или рубрик уникальный дизайн. Например, можно изменить внешний вид какой-то конкретной записи, страницы или категории. Часто это востребовано для торговых или рекламных площадок, где нужно как-то по особенному выделить страницу с конкретным товаром или услугой.

В WordPress существует довольно гибкая система шаблонов. В одной и той же теме Вы можете использовать различные шаблоны оформления для различных разделов сайта. Перед тем, как отобразить тот или иной раздел сайта, “движок” в определенной последовательности перебирает шаблоны, пока не найдет нужный.

Рассмотрим отдельно, как создать произвольные шаблоны для Категории, Записи и Страницы.

Произвольный шаблон для рубрики

Для вывода страницы категории (рубрики) WordPress использует следующую иерархию:

category-{SLUG}.php -> category-{ID}.php -> category.php -> archive.php -> index.php

Это означает, что поначалу “движок” пытается использовать шаблон для отдельной категории, используя ее идентификатор (слаг или ярлык). Например, для рубрики Мониторы со слагом monitors файл шаблона должен иметь название category-monitors.php. В случае, если такой файл отсутствует, то будет попытка использовать шаблон с уникальным идентификатором категории, например, 55. В таком случае система будет искать файл category-55.php. Если и такого шаблона нет, то будут использован общий шаблон для всех рубрик – category.php. При его отсутствии задействуется общий шаблон архивов (archive.php). Если ни один из перечисленных шаблонов не был найден, то для отображения рубрики будет использован самый главный файл – index.php.

Также обязательно ознакомьтесь с темой создания кастомного типа записей посредством register post type.

Как создать шаблон для категории?

Для начала нужно определить слаг категории, для которой необходимо создать уникальный шаблон. Для этого нужно в админ-панели перейти Записи -> Рубрики.

Раздел Рубрики

На странице рубрик можно заметить, что напротив названия каждой категории для нее указан ярлык. Это и есть нужное нам название слага. В качестве примера будем работать с категорией Мониторы со слагом monitors.

Для создания уникального шаблона нужно перейти в папку Вашей активной темы (wp-contentthemesНАЗВАНИЕ_ТЕМЫ) и создать там файл с именем category-monitors.php, в котором задать нужный Вам вывод страницы категории Мониторы.

Список файлов в каталоге темы

Как было сказано выше, шаблон для рубрики также можно создать по ее уникальному идентификатору (ID). Чтобы его узнать, следует в разделе Рубрики под названием категории перейти по ссылке Изменить.

Раздел Рубрики

В итоге будет открыта страница редактирования категории. Теперь нужно обратить внимание на адресную строку Вашего веб-браузера и найти там следующее:

/wp-admin/term.php?taxonomy=category&tag_ID=3

Параметр tag_ID=3 означает, что наша рубрика Мониторы имеет идентификатор 3. Теперь нужно снова перейти в каталог с темой и создать там файл со следующим именем:

category-3.php

Список файлов в каталоге темы

Важно отметить, что оба способа будут работать также и с дочерними темами.

Как создать шаблон для страницы?

Для вывода страниц, WordPress действует по следующей схеме:

page-{SLUG}.php -> page-{ID}.php -> page.php -> index.php

Видно, что действия со страницами аналогичны рубрикам. Исключение составляет лишь файл page.php, который является общим шаблоном для страниц. Действия по созданию уникального шаблона также весьма схожи (со слагом или ID страницы). Идентификатор нужной страницы можно посмотреть, перейдя на страницу ее редактирования, где в адресной строке найти следующее:

/wp-admin/post.php?post=167

Значение 167 параметра post и есть уникальный идентификатор страницы.

Как создать шаблон для записи?

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

single-{SLUG}.php -> single-{ID}.php -> single.php -> index.php

Процесс создания уникальных шаблонов для записей в принципе аналогичен страницам. Их также можно идентифицировать как по слагу, так и по ID.

Помимо отдельных записей, шаблоны можно также создать и для всех записей из определенной рубрики. Например, во всех записях из категории Пылесосы Вы захотите выводить только изображения, а в рубрике Телевизоры еще и видеообзоры.

К примеру, создадим шаблон для всех записей из категории Мониторы. Для этого нужно выполнить ряд несложных действий:

  1. Создать в каталоге темы файл single-monitors.php.
  2. Сделать копию файла single.php, назвав ее, например, single-default.php.
  3. Открыть файл single.php, удалить все содержимое и вставить следующий код:
<?php
$post = $wp_query->post;
if ( in_category( '3' ) ) { //ID категории
    include( TEMPLATEPATH.'/single-monitors.php' );
} else {
    include( TEMPLATEPATH.'/single-default.php' );
}
?>

или вместо уникального идентификатора категории можно вставить ее слаг:

<?php
$post = $wp_query->post;
if ( in_category( 'monitors' ) ) { //слаг категории
    include( TEMPLATEPATH.'/single-monitors.php' );
} else {
    include( TEMPLATEPATH.'/single-default.php' );
}
?>

Что делает этот код? Мы явно даем понять “движку”, что если выбранная категория имеет ID со значением 3 или ее слаг равен “monitors”, то в таком случае следует подключить шаблон single-monitors.php. Во всех остальных случаях будет задействован файл single-default.php.

Многим больше нравится отображение в рубриках карточек с бесконечной подгрузкой вместо обычной пагинации. Сделать такую можно, добавив ajax-кнопку “Загрузить еще” плагином.

Нажмите, пожалуйста, на одну из кнопок, чтобы узнать понравилась статья или нет.

В Вордпресс нельзя сделать шаблон для всех записей какой-то определенной рубрики привычным способом. Сегодня я покажу, как это обойти.

Я вчера рассказывал каким образом в Вордпресс можно сделать разную длину анонсов записи в зависимости от присвоенной записи рубрики. Заодно напомнил, что в Вордпресс имеется прекрасный внутренний механизм шаблонов. Благодаря которому быстро и легко создаются индивидуальные шаблоны для любых типов данных и таксономий. В том числе и для архивов рубрик, о которых и шла речь.

Один внимательный читатель совершенно верно заметил, что в Вордпресс нельзя сделать шаблон для всех записей рубрики. Имеется в виду single.php. Да, действительно, привычным способом это сделать не получится.

В single.php можно задать индивидуальный шаблон лишь для конкретных записей. Например, сверстав его заранее, назначать каждый раз при публикации. Что применимо далеко не во всех случаях. С недавних пор, а именно начиная с Вордпресс версии 4.4, появился встроенный механизм шаблонов записей такого вида: single-{post-type}-{slug}.php. Где {post-type} — тип данных, а {slug} — короткое имя записи. То есть для стандартных записей, нужно указывать тип данных post, для кастомных (CPT) соответствующие им имена. Ну, а {slug}, напомню, это короткое имя записи, которое указывается в URL записи.

Так как же в Вордпресс создать шаблон для записей конкретной категории?

На самом деле всё очень просто. Для этого можно воспользоваться небольшим хуком, который традиционно размещаем в файле functions.php активной темы или в функциональном плагине сайта.

add_filter('single_template', create_function(
	'$the_template',
	'foreach( (array) get_the_category() as $cat ) {
		if ( file_exists(TEMPLATEPATH . "/single-{$cat->slug}.php") )
			return TEMPLATEPATH . "/single-{$cat->slug}.php"; }
		return $the_template;' )
);

В результате, мы сможем создавать шаблон для записей рубрик следующим образом: single-{cat-slug}.php. Где {cat-slug} — короткое имя рубрики.

И всё.

⚡️ Больше полезных материалов по веб‑разработке и о буднях веб‑разработчика на фрилансе на моем канале в Телеграм
— присоединяйтесь!

Иван Данилин

Делаю сайты на Вордпресс с 2008 года, в том числе уникальные инструменты для решения сложных бизнес‑задач.

Languages:
English
日本語
中文(简体) •
(Add your language)

Contents

  • 1 Introduction
    • 1.1 What Template File is Used?
  • 2 Examples
    • 2.1 Adding Text to Category Pages
      • 2.1.1 Static Text Above Posts
      • 2.1.2 Different Text on Some Category Pages
      • 2.1.3 Text Displaying Only on First Page of Archive
      • 2.1.4 Category Name
    • 2.2 Modifying How Posts are Displayed
      • 2.2.1 Excerpts vs. Full Posts
      • 2.2.2 Display Images Linking to Full Posts
      • 2.2.3 What categories do you show to the visitors?
  • 3 Further Reading
  • 4 Related

Introduction

When a viewer clicks on a link to one of the Categories on your site, he or she is taken to a page listing the Posts in that particular Category in chronological order, from newest Posts at the top to oldest at the bottom. There are many display choices, including whether to display the complete post or post excerpts, and what additional information to display (title, author, publish date, last modified time, etc.). Each theme makes different choices, and you might want to change them.

This article explains how to change what happens when the blog viewer is visiting one of your site’s Category pages. This involves the use of Themes and Template files, so if you are new to template files, you might want to read Using Themes and Stepping Into Templates first.

Permalinks to category archives are controlled by Using Permalinks settings.

What Template File is Used?

The first step in modifying what happens when someone visits a Category page is to figure out which of your theme’s files is going to be used to display the posts. This is known as the Template Hierarchy.

In the case of categories, the hierarchy is fairly simple. For instance, suppose the slug of the Category in question is news and the Category ID is 6. The Template Hierarchy specifies that WordPress will use the first Template file it finds in your current Theme’s directory from the following list:

  1. category-slug.php
  2. category-ID.php
  3. category.php
  4. archive.php
  5. index.php

That is, if you do not have a category-slug.php (lets say category-news.php), WordPress will check for a category-ID.php (like category-6.php), and so on.

So, if you want to make the Category whose ID number is 6 look different from what it is currently (and different from other Category pages), you would want to create a category-6.php file. If you want to make all Category pages look different from other archive pages (such as date and author archives), then you would want to create or modify the category.php file. If you want to make changes to the look of all archive pages, you can create or modify the archive.php file. And if you modify the index.php file, you will affect your entire blog.

If you need to create a new file, it is a good idea to copy it from the next file in the hierarchy that exists. For instance, if you want a special display for Category 6, begin by copying the category.php file, or if you don’t have one, use archive.php, and so on.

Examples

Now that you’ve figured out which template file in your theme’s directory you need to modify, in order to make changes to the look of Category pages, let’s look at some examples. In these examples, when it says «edit your template file», it means to edit the file you chose in the section above.

Adding Text to Category Pages

Static Text Above Posts

Suppose you want some static text displayed before the list of Posts on your Category page(s). By «static», we mean text that remains the same, no matter which posts will be displayed below, and no matter which category is being displayed. Here is how to do it: above The Loop section of your Template file, insert the following code:

<p>
This is some text that will display at the top of the Category page.
</p>

Different Text on Some Category Pages

A slightly more complex possibility is that you want different text to display depending on which category page the visitor is viewing. Then you would add the «default» text to the main category.php file, and create special category-#.php files (with their own version of the text, as described in the Introduction) for each category that needs special text at the top.

This does however create a lot of files in your theme directory, and can be avoided using the following code OUTSIDE the loop:

<?php if (is_category('Category A')) : ?>
<p>This is the text to describe category A</p>
<?php elseif (is_category('Category B')) : ?>
<p>This is the text to describe category B</p>
<?php else : ?>
<p>This is some generic text to describe all other category pages, 
I could be left blank</p>
<?php endif; ?>

This does the following. Checks to see if we are looking at Category A, if we are then show the first bit of text, but if we’re not then check if we are looking at Category B. If we are then show that bit of text, and finally, if it is neither Category A or B, then show this default text.

Text Displaying Only on First Page of Archive

Another thing that can happen is that if your Category contains more posts than will fit on one page (according to the Options for Blog Reading you have set in the Administration panels of your blog), the category archive will split into multiple pages. And maybe you only want to display your static text if the viewer is on the first page of results, or you want to display different text for the other pages.

To make this happen, you can use a PHP if statement, which looks at the value of the $paged WordPress variable ($paged is equal to the page number: 1 for the first page of results, 2 for the second page, etc.). It may sound complicated, but it’s actually not too bad. Just put the following above The Loop:

<?php if ( $paged < 2 ) : ?>
<p>Text for first page of Category archive.</p>
<?php else : ?>
<p>Text for subsequent pages of Category.
Can be left out.</p>
<?php endif; ?>

Category Name

Another possibility is to put the category name at the top of the page. If this is not already part of your template, you can add it by doing something like this, above The Loop:

<p>Category: <?php single_cat_title(); ?></p>

Modifying How Posts are Displayed

Excerpts vs. Full Posts

Perhaps you are looking to cut down on the size of your Category pages. You could do this by displaying excerpts rather than the entire content of each Post. To do this, you will just need to find where it says the_content() inside The Loop in your Template, and replace it with the_excerpt(). These will most likely be inside PHP tags:

  <?php the_excerpt(); ?>

and

  <?php the_content(); ?>

Conversely, if your Theme is currently displaying excerpts and you want full posts, replace the_excerpt with the_content.

Display Images Linking to Full Posts

Another thing that is interesting to do in a category archive page is to replace the post content with an image that links to your post. To do this, you will first need to put images into the Excerpt sections of your posts. Here’s how to do that, for one post:

  1. Upload an image on the post editing screen.
  2. Switch to the «Code» editor, rather than the «Visual» editor.
  3. Use the Uploads / Browse tab to insert the image into your post. Make sure to insert the full-sized image, with no link.
  4. Copy the inserted HTML img tag, and paste it into the «Optional Excerpt» section of the post editing screen.
  5. Finish writing the post content (you can remove the image), and publish the post.

Now you will need to modify your template. We’ll use a trick: the the_excerpt_rss() Template Tag does not put a paragraph tag around the excerpt. So we can use it to insert the img HTML and put it inside a link. Here’s what you need to put into your Template, in place of using the_content:

<a href="<?php the_permalink() ?>">
<?php the_excerpt_rss(); ?>
</a>

Caveat: using the excerpt this way may affect your RSS feed, because it places an img tag in the excerpt, instead of text. So if you are going to do this, you probably want to set your options so that the full posts are put in RSS feeds, rather than excerpts.

What categories do you show to the visitors?

To select which category you would like to see on any page, for instance an archive page, use this.

<?php 
$args = array ( 'category' => ID, 'posts_per_page' => 5);
$myposts = get_posts( $args );
foreach( $myposts as $post ) :	setup_postdata($post);
 ?>
//Style Posts here
<?php endforeach; ?>

This uses the get_posts template tag in order to call an array of posts that adhere to the criteria that you set. In this instance, make sure you change «ID» to the category ID number you wish to show. The posts_per_page parameter simply states how many posts you would like to display from this category. We have set the number here to 5.

You can also use Conditional_Tags in order to create archives that respond to conditions set by the URL or context. For instance, if you would like to ensure that when a user visits http://yourblog.com/2008/02/ it will show posts from February of 2008 first, simply add this code to your archive.php file.

<?php if (have_posts()) : ?>
 <?php if (is_month()){
$year = get_the_time('Y');
$month = get_the_time('m');
$the_query = new WP_Query( 'monthnum=$month&year=$year&$cat=5' );
// The Loop
while ( $the_query->have_posts() ) :
	$the_query->the_post();
	echo '<li>' . get_the_title() . '</li>';
endwhile;

/* Restore original Post Data 
 * NB: Because we are using new WP_Query we aren't stomping on the 
 * original $wp_query and it does not need to be reset.
*/
wp_reset_postdata();
 ?>

Further Reading

  • Support Forum discussion of Category-based theme — how to make a Theme that organizes posts by category instead of by date on the home page
  • Templates — Comprehensive list of resources related to Themes and Templates

Template Hierarchy:
Category Templates,
Tag Templates,
Taxonomy Templates,
Page Templates,
Post Type Templates,
Author Templates,
Date Templates,
Search Templates,
404 Templates,
Attachment Templates,
Loop Templates

Шаблоны позволяют управлять разметкой страниц. В отличие от тем, которые задают дизайн всего веб-сайта, шаблон влияет на внешний вид и образ отдельных записей и страниц (или групп записей и страниц).

В этом руководстве рассказывается, как изменить шаблон страницы и отредактировать его в некоторых темах.

Содержание

Шаблоны

Если в тему включены шаблоны, на боковой панели редактора в настройках страницы будет отображаться раздел Шаблон, как показано на изображении справа.

Шаблон управляет отображением страницы. Стандартные шаблоны включают следующие:

  • Шаблон по умолчанию: стандартный шаблон.
  • Шаблон в полную ширину: этот шаблон показывает содержимое страницы в полную ширину экрана без боковых панелей.
  • Шаблон сетки: этот шаблон отображает содержимое в разметке в виде сетки (см. этот пример из темы Dara).

Смена шаблона страницы влияет только на эту страницу, а не на весь веб-сайт.

Снимок экрана опций шаблона страницы на боковой панели с раскрывающимся списком.

Иерархия шаблонов

Прежде чем приступать к редактированию шаблонов, необходимо разобраться в их иерархии. Есть несколько базовых шаблонов, которые автоматически создаются при выборе темы. WordPress использует такие шаблоны для создания стилей по умолчанию для некоторых типов страниц. Например:

  • Если на главной странице сайта отображаются последние записи, для создания стиля этой страницы применяется шаблон Home или Index.
  • Если на главной странице сайта отображена обычная страница, для создания стиля домашней страницы применяется шаблон Front page или Page.
  • Во многих темах на основе блоков есть встроенные шаблоны, например Single Post для настройки внешнего вида отдельных записей или 404 для страниц ошибки 404.
  • Шаблон Archive используется для рубрик или архивов, но не применяется для страниц записей.

💡

При первом открытии редактора сайта загружается шаблон домашней страницы сайта.

Если вам интересны технические аспекты настройки таких шаблонов, см. справочник по темам на WordPress.org.

Редактирование шаблонов

Редактирование шаблонов — это новая концепция, представленная в WordPress для расширения возможностей управления разметкой содержимого. В этом помогает редактор шаблонов, который в некоторых темах позволяет создавать пользовательские шаблоны и назначать их конкретным страницам и записям.

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

Например, если необходимо, чтобы название вашего сайта выглядело на различных страницах по-разному, можно отредактировать шаблон страницы так, как показано здесь:

Доступ к редактору шаблонов через редактор страниц или записей

Работая над страницей или записью, найдите Шаблон в настройках на правой боковой панели. Вы увидите используемый шаблон. Нажмите Редактировать, чтобы переключиться в редактор шаблона и изменить шаблон:

Кнопка «Редактировать» расположена под раскрывающимся списком «Шаблон».

После выбора шаблона для редактирования откроется Редактор шаблонов. Чтобы определить, что вы редактируете шаблон, а не страницу или запись, убедитесь, что (1) вокруг области редактирования содержимого есть чёрная рамка; (2) в верхней части отображается название шаблона; (3) на боковой панели настроек отображается слово «шаблон»:

Снимок экрана с чёрной рамкой вокруг содержимого, отмеченной цифрой 1, именем шаблона в верхней части, отмеченным цифрой 2, и словом «шаблон» на боковой панели настроек, отмеченным цифрой 3.
Признаки того, что вы редактируете шаблон
Доступ к редактору шаблонов через редактор сайта

Шаблоны также можно редактировать в редакторе сайта. Перейдите в раздел Внешний вид → Редактор на консоли. Откроется шаблон, который используется на домашней странице. Чтобы перейти к редактированию другого шаблона, щёлкните значок сайта в левом верхнем углу и выберите Шаблоны.

Выбор шаблона для редактирования

В теме есть несколько шаблонов, которые можно редактировать напрямую. Чтобы просмотреть их, щёлкните значок сайта в левом верхнем углу и выберите Шаблоны. Откроется список, в котором будут созданные вами шаблоны. Чтобы отредактировать шаблон, щёлкните его имя. Этот шаблон откроется в редакторе, где его можно будет отредактировать.

Просмотр структуры шаблона

Чтобы просмотреть все блоки в шаблоне, щёлкните Список в верхней части экрана (значок в виде трёх горизонтальных линий).

Прежде чем начать редактировать отдельные области, желательно просмотреть всю структуру шаблона. Затем нажмите любой блок в списке, чтобы изменить настройки этого блока.

Представление в виде списка, показывающее список блоков в редакторе шаблонов
Представление в виде списка в Редакторе шаблона
Редактирование блоков шаблона

В редакторе шаблонов щёлкните любой блок, чтобы изменить содержимое или настройки блока. Возможны следующие действия:

  • Редактирование элементов заголовка с помощью блока «Название сайта», блока «Ключевая фраза сайта» и блока «Логотип сайта». Перейдите на страницу Настройка заголовка, чтобы узнать больше.
  • Добавление меню с помощью блока «Навигация».
  • Добавление боковой панели с помощью столбцов.
  • Управление внешним видом записей.
  • Скрытие названий страниц или записей.
  • Редактирование внешнего вида подвала.

Возможности безграничны!

Сохранение изменений

Закончив редактирование, в правом верхнем углу щёлкните Сохранить.

Здесь будет отображаться изменённый шаблон. Нажмите Сохранить ещё раз, чтобы подтвердить сохранение изменений шаблона.

Щёлкните значок сайта в левом верхнем углу, чтобы вернуться и выйти из редактора.

Кнопка «Сохранить» в верхнем углу, слева от «Отменить».

Сброс шаблона

Шаблон можно сбросить до исходного состояния, отменив все внесённые изменения.

  1. В редакторе сайта щёлкните значок сайта в левом верхнем углу.
  2. Выберите Шаблоны, чтобы просмотреть все свои шаблоны.
  3. Щёлкните три точки рядом с шаблоном, который нужно сбросить.
  4. Выберите Очистить настройки. Изменения сразу будут отменены.

Как сбросить шаблон в редакторе сайта.

Примеры использования редактора шаблонов

Существует много способов использования редактора шаблона для создания красивых пользовательских разметок. Здесь представлено несколько примеров.

Добавление пользовательского меню

Если вы хотите представить пользовательское меню только на конкретных страницах, с помощью Редактора шаблонов добавьте Блок «Навигация», как показано на видео ниже:

Добавление пользовательского подвала

Можно настроить вид вашего подвала таким образом, чтобы он отличался на разных страницах, как показано на следующем видео:

Создание нового шаблона

Можно разработать новый шаблон и применить его к отдельным страницам и записям. Чтобы создать новый шаблон, выполните следующие действия:

  1. Чтобы создать новый шаблон, нажмите Новый на правой боковой панели в разделе «Шаблон» настроек страницы.
  2. Назовите шаблон и нажмите Создать.
  3. В Редакторе шаблона можно отредактировать структуру отображения страницы.
  4. После этого щёлкните Обновить в правом верхнем углу, чтобы сохранить шаблон.
  5. Щёлкните Назад, чтобы вернуться в редактор страницы или записи. Новый шаблон появится в списке доступных шаблонов.

Применение шаблона

После настройки уже имеющегося шаблона или создания нового вы можете применить его для конкретной страницы, выполнив следующие действия.

  1. Добавьте или отредактируйте страницу либо запись, к которой вы хотите применить шаблон.
  2. На боковой панели Настройки найдите раздел Шаблон. Если боковая панель «Настройки» не открывается, щёлкните значок настроек рядом с кнопкой «Опубликовать» или «Обновить», чтобы открыть боковую панель.
  3. Выберите шаблон, который нужно применить.

Вы можете выполнить предварительный просмотр страницы или записи с применённым шаблоном. Щёлкните опцию Предварительный просмотр в верхней части редактора и выберите Предварительный просмотр в новой вкладке.

Если вас устраивает шаблон и содержимое страницы или записи, щёлкните Опубликовать. Либо же если страница или запись уже опубликована, щёлкните Обновить, чтобы применить изменения для опубликованной страницы.

Боковая панель «Настройки страницы» с разделом «Шаблон», развёрнутым для показа различных опций шаблона страницы.

📌

Некоторые шаблоны применяются автоматически. Например, шаблон Archives автоматически используется для рубрик и страниц архива, поэтому его нет в списке для отдельных страниц или записей.

В данной статье расмотрим самые популярные задачи на WordPress по создание шаблонов:

Создаем шаблон для страницы

По умолчанию к любой созданной в консоли WordPress странице применяется шаблон page.php, находится данный файл в папке с установленной темой:
корень_сайта/wp-content/themes/название_выбранной_темы/

Для создания нового шаблона добавляем в этой же папке файл к примеру с названием mynewtemplate.php, но можно использовать свое на усмотрение

Внутри файла пишем:

<?php
    /*
        Template Name: Мое название шаблона для страницы
    */
?>

Здесь так же можете прописать название на Ваше усмотрение:

Теперь в консоли, при выборе любой страницы, в Атрибутах страницы в поле «Шаблон» можно выбрать из выпадающего списка созданный шаблон:

Выбор шаблона для страницы в WordPress

А базовый шаблон — это как раз файл page.php, из него можно скопировать содержимое и вставить в наш новый шаблон, дабы упростить работу и отредактировать нужную инфмормацию, кроме верхней части, где мы прописывали новое название шаблона.

корень_сайта/wp-content/themes/название_выбранной_темы/functions.php

Создаем шаблон для определенной записи

В папке с Вашей темой:
корень_сайта/wp-content/themes/название_выбранной_темы/

Создаем файл с названием, к примеру «myposttemplate.php»

Внутри файла пишем:

<?php /*
 * Template Name: Название шаблона записи
 * Template Post Type: post
 */
?>

Теперь заходим в консоль WordPress, выбираем определенную запись(не страницу, а запись, это разные элементы. К тому же записи хранятся в рубриках)
Далее в правом столбце находим «Свойства записи», выбираем ранее созданный шаблон и сохраняемся.

Скриншот выбора шаблона для записи в WordPress

Пояснение: «Базовый шаблон» это шаблон, который устанавливается сразу с WordPress, его физический файл single.php и он по умолчанию применяется ко всем записям.

Создаем шаблон для определенной категории

Это делается очень просто, в папке с вашей темой:
корень_сайта/wp-content/themes/название_выбранной_темы/

Создаем файл category-1.php , где «1» меняем на id вашей категории, как узнать id смотрим в этой же статьи ранее.
В сам файл можете скопировать содержимое файла archive.php (который находится в папке с темой) и у Вас получится список постов данной категории с уникальным оформлением.

Создаем и применяем шаблон для всех записей определенной рубрики(категории)

Идем в functions.php
Данный файл находится по следующему пути:
корень_сайта/wp-content/themes/название_выбранного_шаблона/functions.php
и добавляем в конец следующий код:

add_filter( 'single_template', function ( $single_template ) {

    $parent     = '1'; //Здесь вставляем id категории(рубрики) для которой хотите изменить шаблон у детальной страницы записи
    $categories = get_categories( 'child_of=' . $parent );
    $cat_names  = wp_list_pluck( $categories, 'name' );

    if ( has_category( 'movies' ) || has_category( $cat_names ) ) {
        $single_template = dirname( __FILE__ ) . '/single-template.php'; // название файла шаблона
    }
    return $single_template;
}, PHP_INT_MAX, 2 );

Обязательно меняем id рубрики

Создаем в папке(корень_сайта/wp-content/themes/название_выбранной_темы/) с темой файл «single-template.php», копируем в него содержимое файла single.php, данный файл находится в этой же папке

Не знаете как получить id рубрики(категории)?
В консоли wordpress заходим в раздел «Записи» -> «Рубрики» -> находим и выбираем необходимую рубрику, в адресной строке смотрим:

category id in WordPress

Данное значение подставляем вместо «1».

Теперь все записи в рубрике с id 1 имеют шаблон «single-template.php»

Если у Вас что-либо не получается — можете задать вопрос в комментариях.

Загрузка…

Рубрики в WordPress — это стандартная таксономия, которая позволяет группировать контент сайта по отдельным тематиками. По-умолчанию, все рубрики на сайте оформлены одинаково. Фоновое изображение, цвет фона, текст и так далее — все в одном стиле для всех рубрик.

Но что если на вашем сайте очень много контента и разных рубрик, и вы хотите визуально выделить какую-то отдельную рубрику? В WordPress это очень легко сделать, и в этом уроке мы покажем вам как.

inet.ws - Powerful VPS around the World!

Как индивидуально оформить любую страницу Рубрики на WordPress

Смотрите также:

  • Как отображать разные Сайдбары для разных Записей и Страниц в WordPress (через плагин)
  • Как добавить и отобразить описание для Рубрик на сайте WordPress
  • Разная структура темы оформления для разных Рубрик в WordPress
  • Как в WordPress превратить Метки в Рубрики и наоборот
  • Оформляем посты по рубрикам на главной странице вашего WordPress сайта
  • Как вывести последние посты из каждой рубрики WordPress на одной странице

Зачем оформлять Рубрики в WordPress по-разному?

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

Но если на сайте много рубрик, то смена внешнего вида одной из них может значительно привлечь внимание посетителей, что пойдет на руку для вас и для них.

Например, если у вас новостной проект или сайт онлайн-журнала, вы можете индивидуально настроить показ рекламы для каждой отдельной рубрики.

Или если вы продаете товары для детей, вы можете выделить цветовое оформление для каждой рубрики, чтобы больше соответствовать товару.

Создаем отдельный файл шаблона для новой Рубрики

WordPress использует определенный файл шаблона для отображения ваших рубрик. Речь идет о конкретном PHP файле в вашей теме оформления.

Например, для отображения страницы рубрик используется файл category.php. Если такого файла в вашей теме нет, то тогда загружается файл archive.php.

Основной фокус тут заключается в том, что вы можете создавать дубликаты этих файлов для индивидуальных Рубрик.

Например, у вас есть рубрика с названием «Apple«, и вы хотите сделать для нее другое оформление. Если за вывод рубрик в вашей теме оформления отвечает файл category.php, то вы можете создать его копию, назвав новый файл category-apple.php.

Если ваша рубрика называется «Shop«, вам нужно назвать файл category-shop.php, думаю логика тут ясна.

Если имя вашей рубрики пишется по-русски, тогда нужно смотреть по ID номеру этой рубрики и называть файл как-то так: category-17.php, где 17 — это ID рубрики.

Просто подключитесь по FTP к вашему сайту, зайдите в каталог /wp-content/themes/ваша-тема/ скопируйте и переименуйте файл:

Как индивидуально оформить любую страницу Рубрики на WordPress

С этих пор за отображение рубрики «Apple» будет отвечать файл category-apple.php.

Теперь вы можете использовать любой редактор кода и изменить код этого файла любым образом, например, вы можете подключить другой сайдбар или отключить его вообще, использовать full-width макет для страницы и так далее.

Оформляем новый шаблон рубрики с помощью CSS

WordPress автоматически добавляет CSS классы для разных элементов по всему сайту.

Если вы перейдете на страницу вашей рубрики «Apple» и откроете режим Developer Tools в браузере (F12 в Chrome), то можно будет узнать имя класса для каждого элемента.

В нашем случае для рубрики «Apple» используется отдельный CSS класс category-apple:

Как индивидуально оформить любую страницу Рубрики на WordPress

После того, как мы узнали имя интересующего нас класса, мы можем добавить индивидуальное оформление этому классу в таблице CSS стилей style.css.

Например, мы использовали такой код, чтобы изменить цвета основных элементов страницы:

body.category-apple { 
background-color:#EEE;
background:url("http://example.com/wp-content/uploads/2017/background.jpg") no-repeat fixed;
color:#FFFFFF;
}
.category-apple .site { 
background:#232323; 
}
.category-apple a { 
color:#CCCCCC; 
} 

Как индивидуально оформить любую страницу Рубрики на WordPress

Не забудьте изменить имя для класса, если будете копировать наш код.

На этом все! В этом небольшом уроке мы показали, как создавать отдельные файлы шаблонов темы для отдельных рубрик и применять для них индивидуальное оформление с помощью CSS.

Источник: wpbeginner.com

Смотрите также:

inet.ws - Powerful VPS around the World!
Алексей Шевченко

Изучает сайтостроение с 2008 года. Практикующий вебмастер, специализирующий на создание сайтов на WordPress. Задать вопрос Алексею можно на https://profiles.wordpress.org/wpthemeus/

шаблон категорий вордпресс

Сегодня хотелось бы поговорить о категориях в WordPress они же рубрики. Возможно, вы замечали на некоторых сайтах разные стили или оформление одной категории отличающийся от другой. И отсюда возникает вопрос: как это делается? Как добиться подобного результата? Секрет заключается в создании шаблона для определенной категории и последующих его действий. Это откроет больше возможностей, например, можно поменять структуру постов, добавить иконку, цвет, описание к выбранной категории. То есть внести изменения, которые коснутся лишь одной рубрики.

Начнем, пожалуй, со знакомства иерархии шаблонов и не спеша перейдем к практике. Стоит отметить, что материал довольно полезный и если вы начали работать с WordPress, то необходимо усвоить построение шаблонов и его создание.

Иерархия шаблонов для категорий в WordPress

Система шаблонов имеет свою приоритетность в порядке отображения страницы. Это что-то вроде должностей, начиная с начальника и заканчивая обычным рабочим. Вот, допустим, главный директор отправляется в отпуск и на время его отбытия кто-то должен руководить предприятием. По сути это будет заместитель, но если его нет, то будет тот, кто после него и т.д. WordPress работает по такому же принципу и отображает шаблон категорий в следующем порядке:

иерархия шаблонов

Category-slug.php – самая высшая должность и WordPress в первую очередь ищет этот файл. Он носит название самой категории так называемый ярлык или краткий заголовок. К примеру, у вас есть раздел «Программы» и для него необходимо создать шаблон. Первым делом переходим в админ-панель на вкладку «Записи-Рубрики», выбираем необходимую рубрику и видим какой у нее ярлык.

ярлык категории

Следовательно, шаблон должен быть создан с названием category-programmy.php. И все что вы в нем измените коснется только этой категории.

Category-id.php – первый заместитель. В его название входит уникальный идентификатор категории. Найти его можно там же где и ярлык только в адресной строке.

id категории

Число «8» это и есть ID данной рубрике, а название шаблона прописывается таким образом, category-8.php.

Category.php – это идет уже базовый шаблон или стандартный, как удобнее.

Archive.php – файл архивов. Он принимает на себя удар если тема не содержит ни одного из выше упомянутых файлов.

Index.php – индексная страница.

Первый этап закончен. Переходим из обзора в начальную практику.

Создание шаблона для категорий

В роли подопытного кролика сыграет тема «Clean and Clear» это уже не впервой, так что ей не привыкать. Теперь предположим необходимость создать шаблон для категории с идентификатором «8». Открываем тему и ищем файл «category.php». Но оказался тот случай, когда тема не содержит в себе данного файла. Если следовать иерархии, то ответственный файл за категории становится archive.php.

Копируем его на рабочий стол и переименовываем в category-8.php после забрасываем обратно в папку с темой. В итоги – шаблон создан ;-) Изменения, которые будут внесены в нем затронут лишь рубрику с ID-8. Таким же путем создается шаблон с ярлыком только вместо ID прописывается название категории.

Манипуляция со шаблоном для категорий

Подошли к последнему этапу – основная практика. Какие действия можно проделать с шаблоном и как?

1. Добавить обычный текст.

<div class="style-cat"> <p>Текст </p></div>
.style-cat {
    background: #fff;
    border-left: 5px solid #c10000;
    box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
    margin-bottom: 20px;
    padding: 15px 25px;
    width: 75%;
}

обычный текст

2. Поменять структуру постов

Что я имею в виду под словами «структура постов» — изменение вида с одноколоночного на двух- или трех- . Такой вид, в большинстве, применяется для каталогов в интернет-магазинах или просто потому, что так нравиться. Я уже писал, как сделать двухколоночный вывод постов. Абсолютно минимальными действиями, но в нем имелись свои недостатки. Они небольшие, если не учитывать особые случаи, к примеру, определенное количество записей и количество слов в анонсе.

А создание отдельного шаблона даст полную власть и решение, что оставить, а что удалить. Сейчас мы организуем двухколоночную структуру, в определенной категории, с определенным количеством записей.

Первую часть «создание шаблона» мы прошли в начальной практике поэтому перейдем сразу во вторую. В шаблонном файле удаляем все содержимое, кроме главного контейнера (в нем находятся все последующие блоки), и оставляем функции вызова «header, sidebar, footer». В главный блок добавляем цикл, заголовок постов и вывод миниатюр. Вот, что получилось у меня:

<!-- функция вывода шапки -->
<?php get_header(); ?>
<!-- основной контейнер -->
<div class="main">
<ul class="cat-post">
<!-- определение категории и количество записей -->
<?php $the_query = new WP_Query('cat=8&showposts=40'); ?>
<?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
<li>
<!-- миниатюра записи -->
<a href="<?php the_permalink() ?>"><?php echo get_the_post_thumbnail( $post->ID, 'thumbnail'); ?></a>
                        
<!-- заголовок записи -->
<h2><a href='<?php the_permalink() ?>'><?php the_title(); ?></a></h2>
                        
<!-- количество слов в анонсе (необязательно) -->
<?php $content = get_the_content(); echo wp_trim_words( $content , '10' ); ?>
                        
</li>
<?php endwhile; ?>
            
<!-- функция для правильной работы условных тегов -->
<?php wp_reset_query(); ?>
</ul>
</div>
<!-- функция вывода сайдбара -->
<?php get_sidebar(); ?>
<!-- функция вывода футера -->
<?php get_footer(); ?>

Давайте разберем некоторые функции.

cat=8 – идентификатор категории (через запятую можно добавить несколько).

showposts=40 – количество записей.

Осталось стилизовать внешний вид.

.cat-post {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
    margin: 0 10px 20px 0;
    padding: 15px;
}

 .cat-post li{
    background: #fff;
    display: inline-block;
    vertical-align: top;
        width: 190px;
        padding: 20px;
        margin-bottom:10px;
        box-shadow: 0px 0px 1px rgba(0,0,0,0.2);
}
.cat-post img{
    width: 190px;
    height: auto;
    max-width: 100%;
        margin-bottom:10px;
}

В результате получилось следующее…

результат шаблона

Условные теги для категорий

На самом деле к созданию шаблона прибегают в крайних случаях. Чаше всего используют условные теги поскольку это намного проще. Рассмотрим один пример. Поставлена задача — добавить разные иконки ко всем рубрикам. Если продублировать каждую категорию, то сколько же шаблонов получиться – уйма! Плюс добавляется рутинная работа. А если подумать… не легче ли использовать условные теги? Ответ-да.

Список нескольких возможностей:

Различный текст для каждой категории

<?php if (is_category('28')) : ?>
<p>Описание категории №28</p>
<?php elseif (is_category('35')) : ?>
<p>Описание категории №35</p>
<?php elseif (is_category('15')) : ?>
<p>Описание категории №15</p>
<?php elseif (is_category('17')) : ?>
<p>Описание категории №17</p>
<?php elseif (is_category('19')) : ?>
<p>Описание категории №19</p>
<?php else : ?>
<?php endif; ?>

Разные картинки для каждой категории

<?php if (is_category('28')) : ?>
<img src="<?php bloginfo('template_url'); ?>/images/cat28.jpg"/>
<?php elseif (is_category('35')) : ?>
<img src="<?php bloginfo('template_url'); ?>/images/cat35.jpg"/>
<?php elseif (is_category('15')) : ?>
<img src="<?php bloginfo('template_url'); ?>/images/cat15.jpg"/>
<?php elseif (is_category('17')) : ?>
<img src="<?php bloginfo('template_url'); ?>/images/cat17.jpg"/>
<?php elseif (is_category('19')) : ?>
<img src="<?php bloginfo('template_url'); ?>/images/cat19.jpg"/>
<?php else : ?>
<?php endif; ?>


Отображение текста только на первой странице рубрике

<?php if ( $paged < 2 ) : ?>
<p>Текст только на главной странице рубрике</p>
<?php else : ?>
<p> На всех остальных (необязательно)</p>
<?php endif; ?>

Описание категорий только на первой странице

<?php if ( $paged < 2 ){ ?>
<?php add_filter('category_description', 'wpautop'); ?>
<?php add_filter('category_description', 'wptexturize'); ?>
<?php echo category_description(); ?>
<?php } else {  ?>
<?php } ?>

Все эти функции вставляйте в базовый файл (category.php или archive.php) и, главное, вне цикла.

Вот и все.

Источник: https://codex.wordpress.org/Category_Templates

Опубликовано: ADv

Дата 05.10.2013

в рубрике Своя тема

2 комментария

Наверняка вы посещали сайты, где у каждой рубрики была своя разметка? При разработке тем WordPress это уже устоявшаяся практика — использовать различные шаблоны для рубрик, тегов, пользовательских типов записей и таксономий. Создавая шаблоны для рубрик вы можете добавить им определенные фишки, на страницы рубрик. В этой статье мы покажем вам как создать шаблоны для рубрик в WordPress.

Иерархия шаблонов WordPress для страниц рубрик

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

category-slug.php ? category-id.php ? category.php ? archive.php ? index.php

Прежде всего WordPress начнет искать шаблон, заданный для этой конкретной рубрики, используя category slug, например, шаблон category-design.php будет использован для вывода рубрики ‘Design’. Если ВП не найдет шаблон category-slug, то следующим будет поиск по id рубрики, например category-6.php. После этого будет производиться поиск общего шаблона рубрики, обычно это category.php. Если такового не окажется, тогда WordPress начнет поиск общего шаблона архива, например archive.php. И, наконец, устав от поисков, он применит шаблон index.php для отображения содержимого рубрики.

Создаем шаблон рубрики в WordPress

Давайте для начала взглянем на типичный шаблон category.php.

<?php
/**
* A Simple Category Template
*/

get_header(); ?> // выбираем шаблон хидера

<section id="primary" class="site-content">
<div id="content" role="main">

// проверяем, есть ли записи для отображения
<?php if ( have_posts() ) : ?>

<header class="archive-header">
<h1 class="archive-title">Category: <?php single_cat_title( '', false ); ?></h1>

// отображаем необязательное описание рубрики
<?php if ( category_description() ) : 
<div class="archive-meta"><?php echo category_description(); ?></div>
<?php endif; ?>
</header>

<?php

// Цикл
while ( have_posts() ) : the_post();
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<small><?php the_time('F jS, Y') ?> by <?php the_author_posts_link() ?></small>

<div class="entry">
<?php the_content(); ?>

 <p class="postmetadata"><?php
  comments_popup_link( 'No comments yet', '1 comment', '% comments', 'comments-link', 'Comments closed');
?></p>
</div>

<?php endwhile; // Конец цикла

else: ?>
<p>Sorry, no posts matched your criteria.</p>

<?php endif; ?>
</div>
</section>

//выбираем шаблоны сайдбара и футера
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Продолжение статьи ищите по следующей ссылке Создаем шаблоны рубрик в WordPress. Часть 2

Rating: 4.0/5 (4 votes cast)

Теги: wordpress записи тема шаблоны

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации.
Skype: advokat_b

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Wordpress как изменить цвет текста
  • Wordpress admin ajax 500 error
  • Wordpress 502 error
  • Wordpress как изменить фоновое изображение
  • Wordpress 500 ошибка после переноса

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии