Кастомный шаблон категорий


Содержание материала:

Как в WordPress создать отдельный шаблон для записей, страниц и рубрик?

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

Система шаблонов WordPress

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

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

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

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

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

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

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

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

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

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

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

Параметр tag_ >

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

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

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

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

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

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

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

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

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

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

  1. Создать в каталоге темы файл single-monitors.php.
  2. Сделать копию файла single.php, назвав ее, например, single-default.php.
  3. Открыть файл single.php, удалить все содержимое и вставить следующий код:

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

Awebdesign Blog

Сначала создадим кастомный тип записей (Custom Post Type), в functions.php добавляем:

Далее создадим внутри этого кастомного поста раздел Категории:

Обратите внимание, ОЧЕНЬ ВАЖНО! Если post_type равен «activity«, то taxonomy должен иметь ДРУГОЕ имя, например, во множественном числе «activities«. Иначе ничего работать не будет!

Теперь нам нужно создать шаблон для вывода категорий кастомных постов. Файл должен носить имя вида taxonomy-, то есть если название моей таксономи (категории) — activities, то файл должен называться taxonomy-activities (не taxonomy-activity!)

Сделали файл, нужно запустить в луп (цикл) вывода постов наши кастомные аргументы:

Ну а дальше обычный наш цикл вывода постов:

Разные шаблоны для разных категорий товаров

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

Структура шаблонов woocommerce

Я использую вот такую иерархию шаблонов woocommerce (уже немного отличающуюся от той которую использовал ранее)

Там где выводиться шаблон категории товара прописываем условия вывода.

Можно не прописывать конструкцию

А вместо нее использовать простое условие

Для прописанной категорий товара (в данном примере — Электроника) будет выводиться другой шаблон. Данный способ неудобен тем, что необходимо вручную прописывать условия. А если у нас будет много категорий с подкатегориями? В этом случае целесообразно задать таксономии новый параметр Шаблон в глобальную переменную term (по аналогии как это делает плагин taxonomy term image master).

Вывод разных шаблонов товаров в категории

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

Если в назначении шаблона woocommerce использовать универсальную функцию woocommerce_content(); то почему то игнорируется шаблон archive-product.php. А для разделения вывода товаров в категории нужен именно archive-product.php.

get_template_part( ‘woocommerce/content-single-product’ ); — вывод карточки товара
get_template_part( ‘woocommerce/archive-product’ ); — вывод категории товара
get_template_part( ‘product-cat-list’ ); — разработанный мной шаблон вывода каталога товаров
woocommerce_content(); — вывод результатов поиска по товарам

В файле archive-product.php (внутри цикла while) нам нужно добавить условия вывода товаров и создать соответствующий файл в папке woocommerce/content-laminat.php

Создаем атрибут Шаблон у категории

Ранее мы пришли к выводу, что было бы удобнее создать в категориях параметр — Шаблон, в зависимости от которого будут выводиться разные шаблоны категорий. Так вот, я переделал плагин taxonomy term image master, создав новый плагин wc-template-select:

Одной из основных «фишек» плагина является то, что параметр term_template доступен из переменной WP_Term Object:

Далее прописываем условия по выводу шаблонов

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

Поделится информацией с друзьями

Индивидуальный шаблон подкатегорий определенных категорий в WordPress

WordPress позволяет гибко настраивать шаблоны для определенных страниц, постов, рубрик. Достаточно создать файлы category-.php или single-.php и задать индивидуальный шаблон. Но что делать, если у нам необходимо создать определенный шаблон для подкатегорий определенной категории? Скажем, у нас есть “Новости” и подкатегории “Акции”, “Новинки” и т.д. и мы бы хотели, чтобы для этих подкатегорий задать определенный шаблон? В этом нам и помогут WordPress hooks.

Топ-пост этого месяца:  Как Google обрабатывает директивы nofollow, добавленные с помощью JavaScript

Функция достаточно простая, после ее применения мы сможем делать шаблоны, создав файлы subcategory-.php и subcategory-.php, где slug и id – алиас и id родительской категории. Мы добавляем функцию к хуку category_template, где мы можем повлиять на выбор шаблона перед выводом содержимого на страницу:

Данный код вставляем в файл functions.php для активного шаблона.

Суть функции в следующем – если у категории есть родительская категория ($category->category_parent > 0), то задействуем наш код. Получаем данные родительской категории, ее slug и id. Формируем список возможных файлов шаблонов, в том числе и стандартные category-.php, category-.php, category.php и добавляем к ним еще два возможных варианта – subcategory-.php и subcategory-.php.

locate_template функция делает грязную работу за нас – проверяет наличие файлов из списка, который передали и возвращает полный путь первого найденного.

Данный код работает только на 1 уровень подкатегорий. Можно модифицировать код, использовав функцию get_category_parents, но это породит дополнительные запросы к БД и обращениям к файловой системе и рекомендуется к использованию в случае действительной необходимости.

Шаблоны для категорий и подкатегорий

Свои шаблоны категорий для WordPress делать просто. Сомневаетесь? Зря!

Решение предоставлено девушкой-копирайтером, что с программированием на «Вы». Однако, удобная структура движка WP позволяет понять его каждому, и даже более того, сделать всё собственными руками.

Автор статьи: Елена (Lisel)
Копирайтер с добрыми текстами.

Вывод категорий и подкатегорий нестандартным способом является популярным условием на сайте, код шаблона будет выглядеть таким способом:

Код размещается в файле category.php темы. Если такого файла нет, можно создать его локально и залить по FTP на сервер. Если файл уже есть, не забудьте сделать резервную копию!

Во всем коде есть строчки, на которые необходимо особенно обратить внимание.

Строка содержит необходимый класс css, то, соответственно добавляем правильные стили в style сss. Далее выбранный стиль используется почти во везде, включая миникартинки, которые выводятся на страницу.

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

Обратим особое внимание на category__in и showposts .

В первом варианте: category__in используется ID именно той категории, откуда будет в виде описаний с фотографиями выводиться информация. В приведенном примере это 625 категория. Легко вывести и посты отдельных рубрик, тогда нужно добавить вывод нескольких категорий и они будут идти через запятую: category__in =625, 345, 556.

Во втором варианте: showposts=100 означает, что будет выводиться на странице 100 постов. Упустив намеренно данное значение, функция query_posts найдет это значение в настройках WordPress и будет его использовать. Но в этом случае вывод будет не более 5-10 постов.

Как правило, шаблон делается универсально для всех категорий, поэтому можно удалить кусок category__in=625& из кода.

Функция выводит ссылку, которая будет миниатюрой и по ней можно переходить непосредственно на сам пост. Дополнительно функция корректируется, при необходимости ссылку можно убрать и тогда останется только часть:

Параметр array(80, 70) отвечает за размер миниатюры и его меняют в зависимости от пожеланий. Миниатюры смотрятся либо большими или малыми.

Когда файл будет полностью готов, его можно отправить в корень заданной темы на сайте ВП, а в файле style.css задать новые стили для класса .katalog

В результате получается замечательный вывод статей одной категории.

SEO Маяк

Блог Виталия Кириллова | Все о создании,
продвижении сайтов и заработке в интернете

Создание и продвижение сайтов, заработок в интернете

Шаблоны для категорий WordPress. Как сделать каталог из рубрики

Всем привет! Сегодня на seo-mayak.com мы научимся создавать шаблоны для страниц категорий или рубрик, как угодно, на популярной CMS WordPress.

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

О чем это я? Всем известно, что WordPress формирует страницы категорий в виде анонсов записей, где выводятся 5 или более анонсов, в зависимости от настроек.

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

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

Кроме того я обещал одному моему постоянному читателю помочь с оформлением рубрик на его сайте с кулинарной тематикой, хотя я уверен, что данный материал будет полезен для многих веб-мастеров. Поехали!

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

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

В WordPress заложена логика, исходя из которой формируется «семейка» файлов, где каждый член семьи знает свое место. Помните детскую сказку про репку — «Дедка за репку, бабка за дедку, внучка за бабку» и т.д.


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

Иерархия файлов-шаблонов для категорий (рубрик) выглядит следующим образом:

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

Теперь давайте разберемся, что за цепочку файлов я здесь привел.

category-slug.php — данный файл имеет наивысший приоритет в иерархической системе шаблонов категорий, где sung — это условное название рубрики, вернее ее ярлык.

Давайте рассмотрим такой пример. Допустим рубрика называется «Мясные блюда». Для того, чтобы узнать какой у нее ярлык, надо пройти: адимн-панель -> Рубрики и кликнуть по названию нужной категории. На открывшейся странице мы увидим поле «Ярлык»:

Если мы создадим файл и таким названием:

И поместим его в корень темы, туда, где находятся файлы header.php, single.php, sidebar.php и т.д, то именно к нему в первую очередь обратится WordPress при выводе страницы с рубрикой «Мясные блюда».

category-id.php — файл, занимающий второе место в иерархической цепочке, в название которого входит ID страницы.

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

category.php — файл, занимающий третье место в иерархической системе приоритетов. Файл с таким названием довольно часто используется разработчиками шаблонов WordPress. Именно на него возлагают функцию вывода всех страниц с категориями.

archive.php — данный файл занимает четвертое место в иерархии файлов-шаблонов и также довольно часто используется в темах WordPress. Но моем блоге именно archive.php отвечает за вывод рубрик.

index.php — файл, замыкающий на себе все иерархический цепочки файлов-шаблонов, будь-то шаблоны для главной или статической страниц, страниц категорий и т.д. И это понятно, ведь самые простейшие шаблоны могут состоять всего из двух файлов: index.php и файла стилей style.css.

Итак, с иерархией шаблонов категорий мы немного разобрались, надеюсь объяснил понятно. Теперь, как и обещал, я расскажу, как наполнить файл-шаблон, чтобы из рубрики получился иллюстрированный каталог.

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

Создаем файл category-sung.php или category-id.php , кому как нравится, я для примера создам на своем кулинарном блоге файл category-salaty.php . Далее наполняем файл тегами шаблона, такими как:

Следующим шагом вставляем индивидуальные стили, отвечающие за дизайн страницы, например:

У вас наверняка другие кассы и идентификаторы. Посмотрите как прописаны стили и теги в файлах page.php, single.php и т.д. В общем придется поэкспериментировать, чтобы достичь корректного отображения страницы. Все эксперименты советую проводить на Денвере.

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

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

Итак, если у категории нет дочерних категорий, то код шаблона будет выглядеть так:

Хочу обратить Ваше внимание на несколько строчек:

Строчка №10.

На этой строчки прописан css класс, для которого в файле style css надо прописать стили. Данный класс распространяется на все заголовки постов и миниатюры на странице.

Строчка №11.

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

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

Сейчас же я хочу отметить два момента:

Топ-пост этого месяца:  Как работает цикл do while в TypeScript синтаксис и структурная схема

1. category__in=625

Здесь надо указать >category__in=625,344,555 .

2. showposts=100

Здесь задается количество постов для вывода на странице, где 100 — количество постов. Если не прописывать данное значение, то функция query_posts() возьмет его из настоек WordPress, но потом не надо удивляться, что на странице будет отображаться всего 5 — 10 постов.

Строчка №14.

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

Но обратить Ваше внимания я хотел совсем на другое. В функции the_post_thumbnail() в качестве параметра заданы размеры миниатюры — (array(120,100)) , которые можно изменить на свое усмотрение.

Закидываем созданный файл в корень темы и теперь в файле style.css нам надо прописать стили для класса .katalog . Рассмотрим два варианта:

Вариант№1. Если стоит задача вывести миниатюры в несколько рядов и чтобы при этом заголовки располагались под картинками, в виде ссылок, то стили должны выглядеть так:

Теперь если я открою рубрику «Салаты», то увижу следующее:

Очень даже не плохо! Но можно сделать и по-другоиму.

Вариант №2. Немного подправим стили и миниатюры расположатся столбиков в два ряда:

Здесь я не стал комментировать предназначение тех или иных селекторов и их значений. Если что не понятно, спрашивайте в комментариях. Идем дальше.

Шаблон для категорий с дочерними категориями

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

Для примера я возьму категорию со своего блога, которая называется «Создание блога». По схеме, описанной выше, создам файл category-sozdanie-bloga.php и наполню его следующим кодом:

Обратите внимание на строчку №13:

Здесь надо указать ID родительской категории.

Стили я возьму из второго варианта, немного подправлю некоторые значения и вот что получится:

По-моему не плохо! Может стоит заняться и переделать все страницы с рубриками. Как Вы считаете?

Как прикрутить постраничную навигацию к шаблону категории

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

Вариант №1. Шаблон для категории без подкатегорий.

Код вывода постраничной навигации должен вставляется в помеченную мной строчку №20.

Я изменил цикл вывода статей на стандартный цикл WordPress и теперь все параметры настроек должны прописываться в отдельной функции.

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

Для этого в файл functuons.php вставляем такую функцию:

В строчке №3, в условном теге is_category(), надо указать ID категории, на которое будет распространяться данное событие. Если ID не указать, то настройка будет применяться ко всем категориям.

В строчке №4, в качестве значения аргумента posts_per_page ставим желаемое количество отображаемых анонсов.

Теперь все должно работать. На этом все!

Кстати, кому интересно понять анатомию создания категорий на WordPress, прошу сюда.

Как выводить рубрики WordPress — все аргументы функции wp_list_categories().

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

С уважением, Виталий Кириллов

Руководство по кастомным типам записей WordPress

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

| Скачать исходники |

Что такое Custom Post Types?

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

Пользовательские типы записей — новый набор административных настроек, которые используются наряду со стандартными типами, такими как Записи, Страницы, Прикрепленные файлы и так далее. Пользовательский тип записей может хранить любой тип информации. У него есть свой редактор и медиа-загрузчик. Он использует существующую структуру таблиц WordPress для простого управления данными. Главное преимущество создания пользовательских типов записей с помощью WordPress API — это удобное использование с существующими темами и шаблонами. Пользовательские типы записей также SEO-дружественны из-за своих постоянных ссылок.

Зачем использовать пользовательские типы записей?

Пользовательские типы записей помогают хранить разные типы записей в разных корзинах. Они отделяют наши обычные записи от других. Очень просто!

Пример создания плагина Custom Post Type

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

Шаг 1. Создаем папку WordPress плагина

Откройте свою папку с WordPress плагинами и создайте новую под названием Movie-Reviews.

Шаг 2. Создаем PHP файл

Откройте папку и создайте PHP файл под названием Movie-Reviews.php.

Шаг 3. Добавляем шапку

Откройте файл и добавьте код шапки плагина.

Шаг 4. Регистрируем пользовательскую функцию

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

Шаг 5. Выполнение функции

Выполнение функции create_movie_review:

Функция register_post_type делает за нас большинство работы. Как только она вызывается, она готовит среду WordPress к новому пользовательскому типу записи, включая разные разделы в админ. части.

Эта функция принимает два аргумента: первый — уникальное имя пользовательского типа записей, а второй — массив, который представляет свойства нового пользовательского типа записей. Вот другой массив, который содержит разные метки, которые обозначают, какие текстовые строки будут отображаться в разных частях пользовательского типа записей, например «name» отображает название пользовательского типа записей в консоли, «edit» и «view» отображаются соответственно в кнопках Edit и View. Думаю, остальное говорит само о себе.

Аргументы:

  • ‘public’ => true — определяет видимость пользовательского типа записи и в панели администратора, и в клиентской части.
  • ‘menu_position’ => 15 — обозначает позицию меню пользовательского типа записи.
  • ‘supports’ => array( ‘title’, ‘editor’, ‘comments’, ‘thumbnail’, ‘custom-fields’ ) — определяет характеристики пользовательского типа записей, которые будут отображаться.
  • ‘taxonomies’ => array( ‘ ‘ ) — создает пользовательские таксономии. Здесь они не определены.
  • ‘menu_icon’ => plugins_url( ‘images/image.png’, __FILE__ ) — отображает иконку меню администратора.
  • ‘has_archive’ => true — включает архивирование пользовательского типа записи.

На странице WordPress Codex о функции register_post_type вы можете прочесть больше об аргументах, которые используются в пользовательских типах записи.

Шаг 6. Иконка для пользовательского типа записи

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

Шаг 7. Активируем плагин


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

Шаг 8. Добавление новой записи

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

Шаг 9. Публикация

Опубликуйте запись и щелкните по View Movie Review, чтобы увидеть созданную кино-рецензию.

Создание полей Meta Box для пользовательских типов записей

Механизм мета-блоков использует помощь встроенной системы мета-блоков WordPress и помогает добавить поля, необходимые для пользовательских типов записей, без необходимых по умолчанию пользовательских полей в редакторе.

Шаг 1. Регистрация пользовательской функции

Откройте файл Movie-Reviews.php и добавьте следующий код перед закрывающимся PHP тегом. Это регистрирует функцию, которая будет вызвана, когда будет посещен интерфейс администратора WordPress.

Шаг 2. Выполнение пользовательской функции

Добавьте выполнение функции my_admin, которая регистрирует мета-блоки и связывает их с пользовательским типом записей movie_reviews.

Здесь функция add_meta_box использована для добавления мета-блоков в пользовательские типы записей.

Атрибуты:

    movie_review_meta_box — необходимый HTML атрибут >Шаг 3. Выполнение функции display_movie_review_meta_box

Этот код отображает содержимое мета-блока. Здесь мы использовали объектную переменную, которая содержит информацию о каждой кино-рецензии, которая отображается в редакторе. Используя этот объект, мы получили ID записи и использовали его для запроса в базу, чтобы получить связанное имя режиссера и рейтинг, что привело к отображению полей на экране. Когда новая запись добавлена, get_post_meta возвращает пустую строку, что приводит к отображению пустых полей в мета-блоке.

Шаг 4. Регистрация функции Save Post

Эта функция вызывается, когда записи сохраняются в базе данных.

Шаг 5. Вызов функции add_movie_review_fields

Эта функция выполняется, когда записи сохраняются или удаляются из панели администратора. Здесь после проверки типа полученных данных записи на предмет того, является ли это пользовательским типом записи, проверяется, были ли прикреплены значения к элементам мета-блоков, и затем, наконец, сохраняются значения в эти поля.

Шаг 6. Отключение стандартных пользовательских полей

При создании пользовательского типа записи мы определили функцию create_movie_review. Удалите элемент custom-fields из массива supports, потому что это больше не нужно. Сейчас если вы сохраните файл и откроете редактор Movie Reviews, вы заметите два поля в мета-блоке под названием Movie Author и Movie Rating. Таким же образом вы можете добавить и другие элементы.

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

Правильный способ отображения данных пользовательского типа записи — это использование пользовательских шаблонов для каждого пользовательского типа записи. Здесь мы должны создать шаблон, который отображает все кино-рецензии, добавленные с использованием пользовательского типа записи Movie Review.

Шаг 1. Регистрируем функцию для шаблона

Откройте файл Movie-Reviews.php и добавьте перед тегом закрытия PHP следующий код. Он зарегистрирует функцию для вызова, когда будет посещен интерфейс администратора WordPress.

Шаг 2. Выполнение функции

Здесь код ищет шаблон single-( post-type-name ).php в папке текущей темы. Если его там нет, он ищет в папке плагина шаблон, который мы предоставили как часть плагина. Зацепка template_include была использована для изменения стандартного поведения и применения специфического шаблона.

Шаг 3. Создание файла шаблона Single Page

После сохранения открытого файла плагина создайте другой PHP файл под названием single-movie_reviews.php и вставьте в него следующий код.

Здесь мы создали базовый шаблон страницы, используя цикл. Функция query_posts получает элементы пользовательского типа записи и отображает их, используя цикл. Конечно, это только базовый цикл, и вы можете играть с ним, как вам вздумается. Вы также можете использовать CSS стили, чтобы форматировать элементы.

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

Шаг 4. Изображения

Вам нужно сохранить два изображения иконок 32 x 32 px в папке вашего плагина. Назовите их icon.png и grey.png. Все, теперь кино-рецензии отображаются на отдельной странице, отсортированные по дате.

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

Источник: WP.tutsplus.com

Насколько полезным был этот пост?

Нажмите на звезду, чтобы оценить этот пост!

Средний рейтинг: 5 / 5. Количество голосов: 3

Шаблон категорий WordPress. Полное руководство

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

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

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

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

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

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

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

Число «8» это и есть >category-8.php .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

Awebdesign Blog

Сначала создадим кастомный тип записей (Custom Post Type), в functions.php добавляем:

Далее создадим внутри этого кастомного поста раздел Категории:

Обратите внимание, ОЧЕНЬ ВАЖНО! Если post_type равен «activity«, то taxonomy должен иметь ДРУГОЕ имя, например, во множественном числе «activities«. Иначе ничего работать не будет!

Теперь нам нужно создать шаблон для вывода категорий кастомных постов. Файл должен носить имя вида taxonomy-, то есть если название моей таксономи (категории) — activities, то файл должен называться taxonomy-activities (не taxonomy-activity!)

Сделали файл, нужно запустить в луп (цикл) вывода постов наши кастомные аргументы:

Ну а дальше обычный наш цикл вывода постов:

Как добавить категории в кастомный тип постов в WordPress?

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

Метод реализации через плагин

Для новичков мы рекомендуем использовать плагин Custom Post Type UI для создания кастомных типов постов. При задействовании плагина у нас появляется возможность связать кастомный тип постов с любой кастомной таксономией, включая категории.

Первым делом мы установим и активируем наш плагин Custom Post Type UI. Для информации о том, как установить плагин – можете почитать в моем мини руководстве.

После установки мы переходим в раздел CPT UI -> Add/Edit Post Types для создания нового кастомного типа постов или редактирования уже существующего, который вы создали ранее.

Опуститесь ниже до раздела «Расширенные Опции» (Advanced Options) и увидите встроенную опцию таксономий. Установите флажок рядом с категориями и сохраните кастомный тип постов.

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

Ручное добавление категорий в кастомный тип постов

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

Все, что вам нужно сделать это добавить строчку в аргумент для вашего CPT (Custom Post Types):

Топ-пост этого месяца:  Wix — конструктор сайтов, который не прижимает вас к земле
Добавить комментарий