Общие сведения и работа с типами контента в WordPress


Оглавление (нажмите, чтобы открыть):

Вывод произвольных типов записей в wordpress

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

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

Произвольные типы записей и поля:

Вывод (отображение) произвольных типов записей в WordPress

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

1. Создаем страницу отвечающую за вывод постов из кастомного раздела

Берем файл category.php, копируем его и переименовываем в template-films.php. Открываем template-films.php для редактирования и вверху файла пишем следующие строки, чтобы получилось вот так:

Этим мы задаем имя данному шаблону.

Теперь идем в админку сайта, в раздел Страницы и создаем новую страницу. Даем ей заголовок — Все фильмы, что нибудь напишем в содержании, это неважно. И в правой колонке в блоке «Аттрибуты страницы» выбираем Шаблон «Шаблон фильмов». Публикуем страницу.

Вывод произвольных типов записей в wordpress на сайте

Проверяем чтобы наша страница отображалась в меню на сайте. Переходим на нее. Сейчас это просто страница и она не выводит записи из раздела Фильмы. Чтобы она выводила произвольные типы записей, необходимо изменить ее шаблон.

Вносим изменения в страницу template-films.php

И дополняем его, чтобы он стал выглядеть вот так:

Что мы сделали. Мы добавили функцию query_posts(); которая будет обрабатывать посты заданные в переменной $args. А в переменную $args — мы передали массив, которые указывает на то что необходимо выбрать посты из типа постов «films» (псевдоним нашего произвольного типа контента) и чтобы параметр publish у них был true, то есть опубликованные. Также мы указали параметр paged — очень важно указать его именно так, чтобы в будущем когда постов станет больше чем на одну страницу, правильно работала пагинация.

Готово. Если вы все сделали правильно, то задача минимум достигнута. Мы вывели произвольные типы записей — из раздела «Фильмы» на сайте. Дальше можно заняться улучшением и детальной кастомизацией.

2. Вывод произвольных типов записей в отдельном шаблоне

Сейчас записи «Фильмы» выводятся по шаблону content.php. Допустим мы хотим чтобы у фильмов на сайте выводился другой размер миниатюры. Как задать свои размеры для изображений миниатюр в WordPress мы уже знаем. Или нам необходимо просто изменить оформление вывода каталога фильмов, изменив html шаблон вывода каждого фильма.

Для этого в коде ищем строку

Как видим, мы указали WordPress что теперь для вывода записей нужно брать шаблон content-films.

Теперь необходимо создать этот шаблон content-films.php. Копируем шаблон content.php и переименовываем его в content-films.php. Готово! Теперь наши «Фильмы» выводятся по шаблону content-films.php. Если необходимо изменить размер миниатюры, или изменить сам шаблон то правим файл content-films.php.

3. Шаблон для вывода отдельного материала из произвольного типа записи

Если мы откроем одну из наших записей про фильмы на сайте, то обнаружим, что сейчас она выводится по шаблону single.php, который в свою очередь задействует шаблон content.php. Чтобы изменить шаблон вывода одиночной записи для постов типа films сделаем следующее.

Скопируем файл single.php и переименуем в singel-films.php. Такое название типа single-$posttype.php WordPress автоматически будет использовать для кастомных типов постов. Так как у нас псевдоним раздела Фильмы — films, то соответственно название шаблона должно быть single-films.php.

Откроем созданный singel-films.php и посмотрим его код. Мы можем увидеть такую строку:

Она говорит о том что все данные поста будут оформляться по шаблону content.php. Но нам этого не нужно. Для этого заменим эту строчку на следующую:

Здесь мы переопределили шаблон, заменив его на content-single-films.php

Теперь скопируем content.php и переименуем его в content-single-films.php. Готово. Теперь одиночные посты из раздела «Фильмы» будут выводится по своему собственному шаблону content-single-films.php

Готово!

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

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

Произвольные типы записей и поля:

the_title ( ) ?>

Отображение метаданных

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

// If we are in a loop we can get the post ID easily
$price = get_post_meta ( get_post_ >( ) , ‘product_price’ , true ) ;

// To get the price of a random product we will need to know the ID
$price = get_post_meta ( $product_id , ‘product_price’ , true ) ;
?>

Заключение

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

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

6 классных плагинов WordPress для тех, кто занимается контентом

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

Еще одна важная причина – это невероятная способность системы к расширению: можно найти плагин с практически любым функционалом.

Поговорим о тех плагинах, которые касаются контент-маркетинга.

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

И есть несколько плагинов, которые могут значительно помочь всем, кто работает с контентом.

Editorial Calendar

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

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

Возможности:

  1. Просмотр всех постов и времени их публикации.
  2. Публикация постов и работа с черновиками.
  3. Возможность перетаскивания постов для изменения даты публикации.
  4. Возможность видеть статус постов: черновик, ожидает рассмотрения, запланированою
  5. Возможность работать с постами нескольких авторов.

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

Edit Flow

Это плагин похож на предыдущий, но, во-первых, рассчитан не на одного человека, а на команду маркетологов; во-вторых, при помощи модулей можно организовать работу всей команды.

Плагин имеет следующие функции:

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

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

Easy Content Templates

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

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

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

Пользоваться плагином легко. Вам нужно:

  1. Создать новый шаблон (просто запись с пропущенным местом там, где будет разный текст).
  2. Сохранить его.
  3. При создании новой записи выбрать и загрузить этот шаблон (выбирается в выпадающем меню по названию).

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

Zedity: The Best Way To Create Your Posts & Pages

Плагин позволяет использовать для создания постов конструктор: каждый элемент (текст, картинки, видео…) можно в свободном порядке менять местами, накладывать друг на друга, поворачивать и так далее.

Интерфейс удобен и интуитивно понятен, поэтому долго разбираться не придется. Править код тоже не нужно (плагин генерирует его автоматически).

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

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

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

Listly: Listicles For WordPress

Все знают, что списки могут значительно упростить восприятие информации – и поэтому их так любит аудитория. Статьи, состоящие из списков («Самые продаваемые книги в 2020 году», «10 хобби, которые вам точно понравятся» и так далее) часто пользуются популярностью, ими делятся в социальных сетях, их обсуждают.

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

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

После установки плагина вам нужно его активировать, получив на официальном сайте Publisher Key (затем его нужно ввести в настройках в панели администрирования). Listly имеет бесплатную и платную версию; вторая имеет несколько дополнительных функций.

WP Inject (или ImageInject)

Картинки – неотъемлемая часть любой статьи; записи с изображениями не только вызывают больше интереса у читателей, но и положительно влияют на SEO.

Плагин WP Inject позволяет быстро и легко добавлять изображения в статьи на вашем сайте: вам нужно просто ввести слово в поисковую строку плагина (при создании записи), а затем выбрать одно из множества-множества изображений.

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

Кстати, у него есть аналог: Compfight

Если вы знаете еще какие-нибудь интересные плагины, рассказывайте о них в комментариях!

Структура шаблонов темы WordPress, их иерархия и порядок работы движка с файлами страниц

Здравствуйте, уважаемые читатели! Сегодня я решил затронуть очень важный вопрос алгоритма действий WP при взаимодействии с шаблонами. Это актуально, поскольку понимание нюансов работы движка с файлами, отвечающими за составные части темы WordPress, позволит быстро и корректно производить необходимые изменения.

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

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

Как установить тему и редактировать шаблоны WordPress

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

Однако, если вы желаете постигнуть всю суть работы с сайтом и получить дополнительные знания, то стоит попробовать загрузить и установить для начала тему с помощью какого-нибудь ФТП клиента (я, например, использую Файлзиллу).

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

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

  • Распакуйте архив, кликнув по нему правой кнопкой мыши и выбрав соответствующую операцию;
  • Получив доступ по FTP к файлам вашего сайта, загрузите папку, полученную после разархивирования, на хостинг в директорию (папку) themes

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

Там с правой стороны дан список всех шаблонов, входящих в состав данной темы. В дальнейшем при необходимости вы можете пользоваться этим редактором для изменения вида страниц вашего сайта. Но! Я изначально не советую применять этот инструмент, особенно новичкам, потому что в случае какой-нибудь ошибки вы с легкостью «положите» свой сайт, после чего на поиски причины можете потратить кучу времени и нервов.

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

Мастер Йода рекомендует:  Обход ограничений безопасности в PHP

А вот какой интерфейс для редактирования предлагает Нотпад плюс плюс:

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

И еще. Редактирование шаблонов WordPress я советую осуществлять на локальном сервере, то бишь на своем компьютере (здесь Денвер, а еще лучше, Open Server вам в помощь). Сделали все нужные изменения, протестировали, а затем уже заливаете файлы на хостинг. Эксперименты с «живым» сайтом могут дорого стоить.

Файловая структура шаблонов страниц

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

Для моего блога в папку с одной из установленных тем этот путь выглядит так:

При просмотре в окне редактора Нотпад++ папка со всеми файлами вашей темы WordPress будет выглядеть следующим образом:


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

Однако существуют шаблоны, которые отвечают за вывод специально созданной вебстраницы. Например, на моем блоге одно время существовала форма обратной связи на странице «Контакты», с целью ее установки был создан файл mail.php.

Кроме того, есть шаблоны, которые нужны для конструирования отдельных частей, отображаемых на всех страницах сайта. Это шапка, или хидер (header.php), левая и/или правая колонка, иначе сайдбар (sidebar.php), подвал, или футер (footer.php). Схематически такую конструкцию с областями страницы можно представить так:

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

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

Иерархия шаблонов WordPress и последовательность вывода страниц

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

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

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

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

Если конструируется отдельная статья блога, шаблоном которой по умолчанию является Single, то последовательность обращения будет такой:

  1. Single-. Скажем, если в конкретном случае тип записи product, то WP будет обращаться к шаблону single-product.php;
  2. Single;
  3. Index.

Для статической страницы Page иерархия следующая:

  1. Custom template (пользовательский шаблон, который создан специально для конкретной вебстраницы);
  2. Page-. Здесь slug — короткое название (псевдоним) страницы. Например, если в составе темы присутствует файл с названием page-recent-news, то WP обратиться к нему;
  3. Page-. Если вебстраница отождествляется по конкретному идентификатору (id) 12, то именно она будет следующей по иерархии, ежели отсутствуют указанные выше;
  4. Page;
  5. Index.

Чтобы вывести страницу рубрик, Вордпресс предпримет поиск специального файла, затем будет искать по id. Если таких шаблонов не существует, то преимущество получит общий шаблон Category, далее по убывающей Archive и Index:

Аналогичная картина вырисовывается и для тега (метки). В первую очередь специальный шаблон, далее на основе id, после чего Tag, Archive и Index:

Возможно наличие странички автора статей. Тогда будет осуществлен запрос к файлу шаблона Author, после чего по убывающей — к Archive и Index:

Продолжаем, осталось немного. Существует возможность наличия страницы временного архива Date. В этом случае WP после неудачи будет искать Archive, после него Index:

На подавляющем большинстве ресурсов используется страница поиска, которая определяется шаблоном Search. В случае его отсутствия — файл основного шаблона Index:

Далее, страница ошибки 404. Если файла 404.php не окажется, то взаимодействие произойдет с шаблоном Index:

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

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

Записи в WordPress

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

Первое что нужно сделать — это разделить понятие «Запись» на узкое и широкое. Забегая вперед скажу, что в текущей структуре WordPress (где WP — это скорее конструктор, а не блоговый движок), называть посты записями — это не совсем правильно. Я понимаю, что в русском слово «пост» — это англицизм, но когда посты называют записями, и новые типы записей тоже называют записями — это определенно усложняет понимание. К примеру, фразу «нужно создать запись», можно понять как «создать публикацию» или «создать новый тип-записи в структуре WordPress». В такой ситуации, когда юный разработчик еще нехорошо понимает как и что работает, он обязательно запутается. Поэтому, давайте, посты (записи типа post) будем называть постами, а «запись» пусть будет собирательным названием для всех видов типов записей — строка (запись) в таблице wp_posts .

Теперь, по порядку.

Запись в узком смысле

Это публикация записи с типом post , который существует в WordPress сразу после установки. Он прикрепляется к рубрикам или меткам. Таким «записям» можно противопоставить «страницы» (публикация записи с типом page ).

Запись в широком смысле

Это любые элементы которые содержат в себе данные сайта (контент). Все эти данные записывается в базу данных, в таблицу wp_posts .

Так как все элементы находится в одной таблице — они имеет одинаковые данные, а значит технически записи не сильно друг от друга отличаются. Я бы выделил 3 основных различия:

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

Название типа записи. Каждый тип записи имеет свое название: посты называются post , страницы page , произвольно созданные типы называются так как их назвали, например portfolio .

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

  • Встроенные типы записей. К ним относятся все нестандартные типы записей: «ревизии» (редакции), «элементы меню» (произвольное меню), «вложения (медиафайлы)». Т.е. это записи которые используются и обрабатываются в WordPress по особенному.
  • Теперь, давайте взглянем на все виды записей, которые содержит таблица wp_posts :

    Название типа Название Описание
    post Записи (Посты) Записи WP
    page Страницы Постоянные Страницы WP
    любое имя Произвольные типы Записи создаваемые с помощью register_post_type()
    attachment Вложения Медиафайлы WP: картинки, аудио, видео
    nav_menu_item Элементы меню Встроенный тип WP, для меню
    revision Ревизии Встроенный тип WP, для копий редактирования статьи (редакций записи)

    Также, чтобы не оставалось лишних вопросов, разберем каждое поле таблицы wp_posts:

    Поле Значение индекс
    ID ID записи основной
    post_author ID автора записи post_author
    post_date Дата записи (в диапазоне сайта) type_status_date
    post_date_gmt Дата записи (в GMT/UTC диапазоне)
    post_content Контент записи (текст поста, страницы)
    post_title Заголовок записи
    post_excerpt Короткий текст записи (отрывок, выдержка, цитата)
    post_status Статус записи (publish, inherit, trash) type_status_date
    comment_status Разрешено ли комментирование (open, closed)
    ping_status Разрешены ли пинги (open, closed)
    post_password Пароль для доступа к записи
    post_name Ярлык (slug) записи. Название которое используется в URL post_name
    to_ping URL на которые нужно отправить пинг при публикации
    pinged URL куда пинг был отправлен
    post_modified Дата изменения записи (в диапазоне сайта)
    post_modified_gmt Дата изменения записи (в GMT/UTC диапазоне)
    post_content_filtered Временный контент записи. Подробнее
    post_parent ID родительской записи post_parent
    guid Уникальный идентификатор записи. Для фидов.
    menu_order Числовой порядок в меню
    post_type Тип записи: post , page type_status_date
    post_mime_type MIME тип записи. Для вложений: image/jpeg , video/mp4
    comment_count Количество комментариев у записи.

    Как видно, есть общие поля для всех типов записей, например: post_type , post_title . Тогда как некоторые поля используются для одних типов, а другие для других. Например поле post_mime_type используется только для вложений, поле post_parent используется для древовидных типов записей, поля to_ping и pinged используются для записей с текстом типа: посты, страницы, произвольные типы.

    Большое значение в этой таблице играют индексные поля: post_name , post_parent , post_author , post_type + post_status + post_date (составной индекс). Индексы нужны, чтобы ускорить запросы по выборке записей. Не буду вдаваться в подробности индексов, о них вы лучше почитайте в отличной статье: Индексы в MySQL.

    На этом с понятием «записи в WordPress» думаю можно закончить и перейти к другим важным знаниям, которые связаны с записями.

    Дополнительные данные записей (метаданные)

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

    Все метаданные записей хранятся в таблице wp_postmeta :

    Поле Значение Индекс
    meta_id ID метаполя. Обычно нигде не используется. основной
    post_id ID записи из таблицы wp_posts. post_id
    meta_key Ключ метаполя. meta_key
    meta_value Значение метаполя. Всегда строка, массивы хранятся в сериализованном виде

    Для записей типа post, page метаполями можно управлять на странице редактирования записи:

    Метаполе, имя которого начинается с нижнего подчёркивания ( _ ) воспринимается движком как скрытое и по умолчанию в админке не отображается

    Для управления метаполями в коде темы или плагина, существуют специальные функции:

    Функция Описание
    get_post_meta() Получает значение произвольного поля записи (поста). Позволяет также получить все метаполя.
    add_post_meta() Добавляет произвольное поле для указанной записи (поста).
    update_post_meta() Обновляет указанное произвольное поле (метаполе) указанной записи (поста) или добавляет новое.
    delete_post_meta() Удалят все произвольные поля (метаполя) с указанным ключом у указанной записи (поста).
    get_post_custom() Возвращает многомерный массив с данными всех произвольных полей текущего поста.
    get_post_custom_keys() Возвращает массив с ключами произвольных полей, принадлежащих текущей записи.
    get_post_custom_values() Возвращает массив значений произвольных полей с указанным названием у указанной записи (поста).
    the_meta() Выводит произвольные поля записи (метаданные из wp_postmeta ). Поля выводятся в списке
    . Скрытые поля игнорируются.

    У ревизий метаданных нет.

    Для управления метаполями у меня есть класс Kama_Post_Meta_Box. И есть плагины: Custom Field Suite, Advanced Custom Fields, Carbon Fields и др.

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

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

    Древовидные записи связываются друг с другом как родительские и дочерние. И они не имею связь с рубриками (таксономиями). Древовидная связь записывается в поле post_parent таблицы wp_posts .

  • Не древовидные (линейные) записи связываются друг с другом через рубрики, метки и произвольные таксономии. При этом поле post_parent у них всегда равно 0 и не используется.
  • Подробное объяснение, что такое таксономии в WordPress.

    Схематически это выглядит как-то так:

    Связи в нестандартных типах записей:

    • Элементы меню — используют логику древовидных записей для связи между собой.
    • Ревизии и Вложения — прикрепляются к родительской записи через поле post_parent таблицы wp_posts .

    Топ-6 плагинов WordPress для создания кастомных типов постов

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

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

    Что такое пользовательские типы постов?

    Давайте начнем с Постов и Страниц. Это два наиболее часто используемых типа контента в WordPress.

    Пользовательский тип постов — это своего рода контент, который вы можете создавать и настраивать самостоятельно.

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

    И таких возможных сценариев очень много.

    Как создавать пользовательские типы постов?

    Есть два основных способа: вы можете либо сделать это с помощью кода, или с помощью плагина.

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

    Поэтому, сегодня мы представляем топ-6 WordPress плагинов для пользовательских типов постов.

    1. Easy Content Types

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

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

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

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

    У плагина Easy Content Types есть три разных типа лицензии: $39 для одного сайта, $67 — на три сайта, $93 — неограниченное количество сайтов.

    • Позволяет создавать и настраивать пользовательские типы постов и пользовательскую таксономию в течение минуты.
    • Позволяет создавать метабоксы и пользовательские поля для них (10 типов полей).
    • Подходит как для разработчиков, так и для людей, которые не разбираются в коде.
    • Имеет простой интерфейс.
    • Поставляется с drag-and-drop организацией полей.
    • Есть функция экспорта для пользовательских типов постов и таксономии.
    • Позволяет редактировать все, что вы ранее создали (пользовательские типы постов, таксономию и метабоксы).

    2. Custom Post Type UI

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

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

    Он позволяет создавать новые типы постов, новые соответствующие таксономии, а также изменять уже существующие типы постов.

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

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

    • Позволяет создавать и настраивать пользовательские типы постов и пользовательскую таксономию.
    • Позволяет подключать встроенные и пользовательские таксономии к типам постов.
    • Поставляется с мощной системой маркировки типов постов.
    • Не обрабатывает отображение ваших новых типов постов и таксономии. Это вы должны сделать самостоятельно.

    3. CustomPress

    Современный, очень гибкий и настраиваемый плагин. С его помощью вы можете добавить любой тип поста, а также пользовательские поля (текстовые поля, радио-кнопки, выпадающие меню). Каждое из этих полей можно оформить отдельно.

    У CustomPress интуитивный и современный интерфейс, который позволяет настраивать новые пользовательские типы постов в считанные минуты. Работать с пользовательскими полями также очень легко и удобно. CustomPress — действительно достойный вариант.

    Есть два типа лицензии: $19/месяц, если установить его, как автономный инструмент, или $24,50/месяц за полный пакет, включая все плагины и темы от WPMU DEV.

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


    4. Toolset Types

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

    Types выгодно отличается от других плагинов тем, что отлично подходит для разработчиков и предоставляет очень удобный интерфейс. Есть PHP API. Пользователи не-программисты для работы могут использовать простой графический интерфейс.

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

    Еще одна полезная функция: возможность задавать родительские/дочерние отношения между различными типами постов.

    • Позволяет создавать и настраивать пользовательские типы постов и пользовательскую таксономию.
    • Предоставляет настраиваемые поля для контента и пользователей.
    • Поставляется с функцией контроля доступа для полей.
    • Многоязычный плагин.
    • Позволяет установить родительские/дочерние отношения.

    5. Pods

    Pods это еще один удобный бесплатный плагин для пользовательских типов постов, таксономии и полей.

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

    Для организации всех пользовательских типов постов и таксономии, созданных при помощи плагина, Pods использует специальные элементы “pods”.

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

    • Позволяет создавать и настраивать пользовательские типы постов и таксономию.
    • Позволяет создавать пользовательские страницы настроек, а также «продвинутые» типы контента.
    • Можно расширить существующие типы контента.
    • Можно использовать различные типы полей, а также создавать свои собственные.
    • Удобный и современный интерфейс.
    • Предлагает интеграцию с другими плагинами: Polylang, WPML, Tabify Edit Screen, Codepress Admin Columns, Gravity Forms и т.д.

    6. Custom Post Type Maker

    Этот плагин намного проще, чем другие в этом списке. Но, тем не менее, он предоставит вам все обязательные типы постов, которых в большинстве случаев вам будет достаточно. В этом плагине есть два основных раздела: Post Types и Taxonomies.

    Чтобы работать с Custom Post Type Maker, вам не понадобятся какие-то навыки программирования, здесь все доступно через удобный интерфейс.

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

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

    • Позволяет создавать и настраивать пользовательские типы постов и пользовательскую таксономию.
    • Удобный интерфейс.
    • Предоставляет доступ ко всем зарегистрированным пользовательским типам постов и таксономиям.
    • Не обрабатывает отображение ваших новых типов постов и таксономии. Это вы должны сделать самостоятельно.
    Источник: codeinwp.com

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

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

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

    Основные компоненты WordPress. Часть 1

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

    Общие принципы внутренней организации WordPress

    Система управления контентом WordPress относится к числу серверных веб-приложений, поэтому для неё обязательна установка на сервер, например, Apache. Хранение настроек и содержимого сайтов осуществляется через базу данных MySQL. При получении запроса от пользователя WordPress формирует из собственных файлов и данных СУБД запрашиваемые страницы сайта и выводит их на монитор пользователя.

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

    Как правило, веб-сервер Apache вместе с базой данных MySQL и интерпретатором языка PHP, на котором написана система WordPress, устанавливают на компьютеры под управлением Linux. Поэтому в узкой среде разработчиков подобная платформа получила название LAMP (аббревиатура от первых букв названий операционной системы, веб-сервера, базы данных и языка программирования).

    Эта платформа способна поддерживать и другие языки, например, Perl или Python, в качестве операционной системы допустимо использование FreeBSD, архитектура которой аналогична Linux. Под Windows используют специально настроенные пакеты типа Denwer, однако данное решение эффективно на этапе разработки и тестирования, тогда как в обычном режиме работы сайта не обеспечивает должного уровня безопасности и скорости.

    Страницы, записи и рубрики сайта

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

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

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

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

    Более наглядно различие страниц и записей представлено в таблице.

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

    Формируется автоматически по названию страницы, предусмотрена возможность ручной корректировки

    Формируется автоматически по шаблону, в некоторых случаях возможна корректировка в ручном режиме

    Размещение в структуре сайта

    У каждой страницы может быть родительская страница, что определяет порядок их отображения на панели навигации

    Записи соотносят с одной или несколькими рубриками, в рамках которых они появляются по дате публикации

    Отображение на сайте

    Доступны по прямым ссылкам по адресу страницы

    Отображаются в информационных лентах первые строчки, а затем идёт надпись «читать далее»

    Оформление внешнего вида

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

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

    Отключены по умолчанию

    Включены по умолчанию

    Только для администраторов и редакторов сайта

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

    Изменения вносят непосредственно в текст страницы, старый вариант нигде не отображается

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

    Публикация в RSS-ленте сайта

    Выбирая, что создать – запись или страницу, следует отвечать мысленно на вопрос: эта информация подлежит обновлению или её надо будет сохранять, создавая новый вариант? В первом случае будут использованы страницы, а во втором – записи.

    Сайты на WordPress используют и другие типы контента. Так, в последнее время получил большое распространение такой вариант как «Портфолио». Его используют для публикации информации о товарах, реализованных проектах, учебных курсах, сотрудниках компании и т.д. Это позволяет правильно структурировать сайт, оформить публикуемый контент и пр.

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

    Размещение графических изображений и медиафайлов

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

    Различают три способа публикации графического контента и других медиафайлов:

    загрузка специфичного контента происходит непосредственно на сайт с последующим размещением на страницах;

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

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

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

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

    Существенным недостатком этого варианта публикации динамичного контента является наличие требований к размеру файлового пространства сайта, пропускной способности канала, объёму загружаемых файлов. Его разумнее использовать для размещения отдельных картинок и файлов, более «тяжёлый» контент станет тормозить загрузку страницы и может не отобразиться вовсе.

    Второй вариант – через публикацию медиаконтента в виде ссылок – аналогичен вставке простой ссылки на внешний ресурс, только в этом случае внешний ресурс вы предварительно создали сами. Например, большие по объёму файлы загружают в файлообменник или систему облачного хранения. Из недостатков стоит отметить присутствие на вашем сайте ссылок на сторонние ресурсы, которые хранят созданные вами материалы.

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

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

    Внедрение медиаобъектов также может происходить двумя путями:

    копирование кода iframe;

    копирование ссылки на страницу с нужным содержимым через протокол Embed.

    Второй вариант является самым популярным и используется следующими контент-провайдерами и хостингами: YouTube, Vimeo, Flickr, SmugMug, Instagram, SoundCloud, Scribd, SlideShare и др.

    10 лет работаем с лидерами рынков и молодыми амбициозными компаниями

    — Реализуем любой сервис с нетипичным функционалом;

    — Переезды на Битрикс, интеграции со всем на свете;

    — Налаженная система менеджмента: четкое соблюдение дедлайнов и ТЗ

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

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

    Иерархия шаблонов WordPress состоит из семи основных категорий:

    1. Главная страница сайта
    2. Одиночная запись
    3. Статическая страница
    4. Страница категорий и тегов
    5. Пользовательские типы записей
    6. Страница результатов поиска
    7. Страница 404 (ничего не найдено)

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

    Введение в файлы шаблонов (и как они соотносятся с темами WordPress)

    Когда вы создаёте простой статический веб-сайт, вы обычно просто используете HTML и CSS для рендеринга и настройки его внешнего вида. WordPress, с другой стороны, намного мощнее. Платформа построена на языке PHP, и она использует несколько специальных файлов .php для определения того, как формируются отдельные части ваших страниц сайта.

    Например, посмотрите на правую часть этой публикации. Есть боковая панель, указывающая на другие похожие публикации из нашего блога. Когда ваш браузер сказал WordPress загрузить эту статью одновременно с этим было подтянуто несколько файлов-шаблонов, один из которых называется sidebar.php. Этот файл содержит информацию о том, как отобразить боковую панель, которую вы видите сейчас, и какие элементы она должна включать:

    Боковые панели – это, конечно, только одна из частей полной страницы. Для большинства страниц WordPress требуется несколько файлов шаблонов для работы, в том числе:

    • index.php
    • header.php
    • sidebar.php
    • footer.php
    • functions.php
    • single.php
    • comments.php

    Надо отметить, что это не все файлы-шаблоны, которые вы можете найти в WordPress. header.php, sidebar.php и footer.php, особенно важны, поскольку они известны как ‘часть шаблона’ (“template partials’). Это означает, что они могут быть встроены в другие шаблоны.

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

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

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

    Как работает иерархия шаблонов WordPress

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

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

    1. WordPress будет искать файл шаблона под названием category-hosting.php в каталоге текущей темы.
    2. Если файл category-hosting.php не будет найден, WordPress будет искать тот, который использует идентификатор категории, например, category-2.php.
    3. Если WordPress не найдёт ни одного из этих параметров, он будет искать общий файл category.php.
    4. Если же и файл с именем category.php не будет найден, WordPress откатится назад и будет искать шаблон archive.php.
    5. Наконец, если все остальные действия закончатся безуспешно, платформа загрузит файл index.php вашей темы и будет использовать его в качестве шаблона страницы.

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

    Объяснение иерархии шаблонов WordPress (7 категорий)

    Страницы каждого сайта на WordPress можно разделить на семь категорий. Каждая из этих категорий имеет встроенную иерархию, по каждой из которой мы вас проведём.

    1. Главная страница сайта


    Прежде всего, давайте поговорим о первой (главной, домашней) странице вашего сайта. Когда WordPress загружает главную или домашнюю страницу, первое, что он будет искать, это файл front-page.php. Если этот файл недоступен, платформа вернётся к home.php. Если оба файла будут отсутствовать, WordPress обратится к неизменно надёжному файлу index.php, который всегда есть (иначе ваша тема не будет работать).

    Иными словами, данная иерархия подразделяется так:

    1. front-page.php
    2. home.php
    3. index.php

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

    2. Одиночная запись

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

    Вот как работает иерархия одиночных записей:

    1. single-.php
    2. single-.php
    3. single.php
    4. singular.php
    5. index.php

    Вероятно, вы не узнаете некоторые из этих файлов шаблонов, поэтому давайте дадим им некоторый контекст. Вначале списка single-.php. Более понятным примером может быть single-product-ca-12.php, в случае интернет-магазина. Иными словами, WordPress будет искать уникальный файл шаблонов для каждого загружаемого вами сообщения в пределах своей конкретной категории. Если платформа не может найти подходящий шаблон, она вернётся на шаг назад к single-.php и так далее, пока неминуемо снова не достигнет index.php.

    На практике этот подход позволяет создавать пользовательские шаблоны для отдельных записей или продуктов. Однако, если вы предпочитаете использовать один шаблон WordPress для всех своих публикаций, для этого нужен single.php.

    3. Статическая страница

    Статически страницы попадают в отдельную категорию в WordPress. Например, возьмите сайт Hostinger в целом. https://www.hostinger.ru – это наша главная страница, и при обращении к ней загружается шаблон front-page.php. Другие разделы сайта, такие как https://www.hostinger.ru/kupit-hosting-sajtov, относятся к категории статических страниц.

    Статические страницы реализуют такую иерархию:

    1. Пользовательский файл шаблона
    2. page.php
    3. page-.php
    4. page.php
    5. singular.php
    6. index.php

    Обратите вимание, что первый пункт в списке не является именем файла. Это потому, что WordPress может распознавать несколько типов контента как статические страницы. Например, если вы имеете дело с записью, WordPress по умолчанию будет использовать иерархию, о которой мы говорили ранее. Статические страницы, с другой стороны (такие как, /kupit-hosting-sajtov), будут перемещаться прямо на page-slug.php. В нашем примере это будет page-kupit-hosting-sajtov.php (если такой файл существует).

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

    4. Страницы категорий и тегов

    Как вы помните, мы фактически рассмотрели иерархию категорий ранее в этой статье в качестве примера. В любом случае, давайте разберём шаблоны, которые эта иерархия охватывает по порядку:

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

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

    В этом разделе мы также упоминаем теги WordPress, потому что и категории и теги являются таксономическими элементами. Кроме того, их иерархии в точности совпадают, за исключением того, что вы заменяете все экземпляры категории ‘category’ на тег ‘tag’, и тогда – category-.php становится tag-.php и т.д.

    5. Произвольные (пользовательские) типы записей

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

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

    1. archive-.php
    2. archive.php
    3. index.php

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

    6. Страницы результатов поиска

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

    1. search.php
    2. index.php

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

    7. Страница 404 (ничего не найдено)

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

    Если вы создадите собственную страницу ошибок, WordPress будет искать её сначала, как показано в этой иерархии:

    1. 404.php
    2. index.php

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

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

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

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

    • index.php
    • home.php
    • page.php
    • archive.php
    • category.php

    Это небольшая и аккуратная коллекция файлов шаблонов, но её более чем достаточно для работы сайта. В этом случае, если бы вы посетили домашнюю страницу, WordPress загрузил бы шаблон home.php.

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

    • Случайная запись загрузила бы index.php в качестве файла шаблона, потому что в рассматриваемой иерархии нет других шаблонов.
    • Любая посещаемая категория будет использовать файл шаблона category.php, поскольку такой шаблон WordPress есть в наличии. Если бы его не было, WordPress вместо него загрузил бы archive.php.
    • Ваши статические страницы будут использовать page.php, но они будут по умолчанию переходить к index.php, если первый файл не будет доступен.
    • Поскольку среди шаблонов нет страницы с ошибкой, WordPress будет использовать index.php в качестве шаблона в этой ситуации.

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

    Заключение

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

    У вас есть вопросы об иерархия шаблонов WordPress и их работе на вашем сайте? Задайте вопрос в разделе комментариев ниже!

    WordPress: управление видимостью контента

    Иногда бывает полезным скрыть и/или показать часть контента в записях/страницах WordPress в зависимости от тех или иных условий. Условия и ситуации бывают разными. Допустим, вы проводите конкурс на своем сайте и условия конкурса или его результаты должны автоматически появится на сайте 17 числа текущего месяца. Или вы распространяете ссылки на своем сайте, но не хотите, чтобы их видели все, а только зарегистрированные пользователи сайта. Или вы принимаете анкеты на сайте от аудитории, но хотите показывать анкету на сайте только с 1 по 10 число каждого месяца. И т.д.

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

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

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

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

    Использование в теле записи/страницы:

    Видимость контента в зависимости от роли пользователя на сайте

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

    Использование в теле записи/страницы:

    Можно использовать следующие параметры:

    • read — контент будет виден всем
    • edit_posts — виден редакторам
    • manage_options — только администраторам

    Видимость контента в диапазоне дат каждого месяца

    Если вы хотите сделать видимым часть контента в определенном диапазоне дат каждого месяца (скажем, с 1 по 10 число), можно использовать такой шорткод:

    Использование в теле записи/страницы:

    Видимость контента в определенное число месяца

    Бывает полезным, например, если 30 числа каждого месяца вы подводите какие-то итоги. Делается как и аналогично в прошлом случае, с некоторыми модификациями:

    Использование в теле записи/страницы:

    Видимость контента в определенный день недели

    Контент можно прятать/показывать и в определенный день недели (понедельник, вторник и т.д.)

    Использование в теле записи/страницы:

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

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

    Использование в теле записи/страницы:

    Видимость контента в диапазоне месяцев

    А вдруг вам понадобится показывать/прятать контент лишь летом или зимой? Или в первый квартал года? Можем сделать таким шорткод:

    Использование в теле записи/страницы:

    Видимость контента после наступления даты

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

    Использование в теле записи/страницы:

    Если не работают шорткоды в шорткоде

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

    Чтобы заставить шорткод работать в шорткоде WordPress нам необходимо заменить всего одну строку в функциях приведенных здесь шорткодов. Строчку:

    Полное руководство по пользовательским типам постов в WordPress

    Дата публикации: 2020-03-14

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

    За эти годы я успешно создал большое количество кастомных веб-приложений на новейших версиях WordPress, в которых по полной использовались кастомные типы постов. Примером может послужить сайт theme marketplace моего плагина для WordPress ProfilePress.

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

    Ну хватит долгих речей, перейдем к основной цели данного урока – изучению всех тонкостей пользовательских типов в WordPress.

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

    Как создать сайт самому?

    Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

    Определение пользовательского типа постов

    WordPress может хранить и отображать множество различных типов контента. Одна часть данного контента называется постом, хотя пост сам по себе является специфическим типом постов. «Все типы постов хранятся в одном месте, в таблице wp_posts базы данных, но посты различаются по колонке post_type»

    Post type относится к различным структурированным данным, сгруппированным вместе, и которые обслуживаются в базе данных WordPress в таблице posts.

    Примером типа постов служит тип post (группа постов из блога), page (группа страниц), attachment (группа загружаемых медиа файлов), а также revision (группа редакций постов). Все эти типы родные или встроенные в WordPress. Зная, что такое тип поста, можно создать и зарегистрировать новый тип, который будет относиться к кастомным типам постов.

    Если вы создаете сайт для компании или бизнеса на WordPress, то типами постов могут быть Portfolio, Testimonials и Products. Теперь, когда мы разобрались с концепцией пользовательских типов постов, давайте научимся их создавать.

    Как создать пользовательский тип постов

    Создать пользовательский тип постов довольно просто. Сперва, необходимо зарегистрировать тип при помощи функции register_post_type(), затем поместить его в функцию и прикрепить все это к экшену init:

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