Как сделать отображение таксономии в админке по условию


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

Не выводятся таксономии в меню

Здравствуйте!
Ребят, помогите найти решение, пожалуйста.
Есть wordpress и на него установлена тема на Cherry Framework.
В этой теме добавлены типы записей и таксономии для них, НО(!) при создании меню (админка/внешний вид/меню) этих таксономий нет.
Вот кусок кода, создающий тип записей и таксономии к ним:

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

14.11.2014, 08:47

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

Не выводятся картинки в меню
Добрый день! Подскажите, что я делаю не так? В редактировании меню добавляю новый параметр.

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

Представления таксономии
Здравствуйте! Помогите, пожалуйста, неопытному разобраться как работает taxonomy и views. Есть.

Получить имя таксономии по ее id
Добрый день! Понимаю, что можно получить имя кодом: $term = get_term( ’28’ ); $term_name =.

Добавление пользовательских мета полей для пользовательских таксономий в WordPress

Главное меню » Блог-платформа wordpress » Лучшие учебники по WordPress » Добавление пользовательских мета полей для пользовательских таксономий в WordPress

Примечание: Данное руководство предназначено для дизайнеров и разработчиков.

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

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

Первое , что вам нужно сделать , это загрузить the Tax-Meta-Class from Github. Создайте новую папку и назовите его “поля таксономией”. Сохранить папку “Tax-Meta-Class” внутри этой папки.

Файл поставляется с ZIP архивом именем class-usage-demo.php. Просто переименуйте этот файл, и назовите его taxonomy-fields.php.

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

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

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Создание таксономий для произвольных типов записей WordPress

Здравствуйте уважаемые читатели блога WP Developer. В прошлой статье я рассказывал о таксономиях: что это такое, привел пример стандартных таксономий в WordPress и описал как добавить таксономию к записям. Сегодня я хотел бы поговорить о том, как создавать таксономии для произвольных типов записей. Алгоритм создания таксономий для стандартных и произвольных типов записей схож, за исключением небольших нюансов. Но, в общем, об этом ниже.

Шаг 1. Создание произвольного типа записей

Первым делом необходимо создать новый произвольный тип записей. В нашем примере назовем его Магазин . Для этого в файл functions.php Вашей темы необходимо добавить следующий код.

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

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

Шаг 2. Создания таксономии

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

На строке 34 текущего кода мы указали название для новой таксономии, а на строке 35 связали ее с новым типом записей — shop . Теперь меню с разделом Магазин в админ-панели выглядит так, как показано на рисунке ниже.

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

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

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

Шаблон вывода для произвольной таксономии

Настройки ЧПУ (постоянных ссылок)

Здесь изначально я советую пройти в ЧПУ (Настройки->Постоянные ссылки) . Желательно, чтобы настройки были примерно такими /%category%/%postname%.html или /%postname%/ . На рисунке ниже показано, как сделано у меня.

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

Теперь, когда мы настроили постоянные ссылки, пришла пора создания шаблона для нашей таксономии. Лично я использую 3 способа создания таких шаблонов, а точнее 3 способа их названия. Ниже они описаны согласно приоритету поиска CMS WordPress:

  • taxonomy-.php — значения в скобках расшифровываются так taxonomy-<название-таксономии>—<название-термина-таксономии>.php . Например, можно назвать шаблон taxonomy-goods-clock.php и он будет выводить статьи из таксономии goods , термином которой является clock (часы) ;
  • taxonomy-.php — taxonomy-<название-таксономии>.php . Например, taxonomy-shop.php ;
  • taxonomy.php — использую реже всего, если знаю, что заведомо на сайте будет только одна таксономия.

Остается добавить в файл код вывода и все будет работать.

Шаблон вывода для произвольных типов записей

В своей практике я использую 2 вида названия шаблонов для вывода поста из произвольных типов записей:

Создание таксономии WordPress

Статья о том, как создать таксономию в WordPress. Базовые понятия, примеры.

Содержание

  • 1. Что такое таксономия WordPress?
  • 2. Типы таксономий.
  • 3. Как создать таксономию.

1. Что такое таксономия WordPress?

Перед тем как, что то создавать, нужно разобраться с базовыми понятием таксономии. Что это такое?

В WordPress под таксономией понимается некое абстрактное пространство, с помощью которого происходит группировка записей(постов) по определенному признаку.

К примеру существует стандартная таксономия «Рубрки» на англ. версии WP «Category». С ее помощью мы можем сгруппировать записи по признакам: новости, статьи, полезная информация и.т.п. По простому мы называем это все «категориями». Но на самом деле это таксономия «Рубрики».

«Метки» это тоже таксономия на англ. версии «tags», только элементы этой таксономии не имеют наследования(родителей).

2. Типы таксономий.

Существует два типа таксономий:
1. Древовидные(иерархический) — имеет вложенность, родительские и дочернии элементы. Пример: Рубрки(category).
2. Линейные (плоские)— не имеет вложенности. Пример: Метки(tags).

3. Как создать таксономию.

И так. Как же создать кастомную(произвольную) таксономию в WordPress. Существует два способа:

Способ первый. С помощью функции register_taxonomy().
Функция register_taxonomy() — регистрирует кастомную(произвольную) таксономию.

Пример. Создадим таксономию mycat для типа записей(post type) «записи» или по простому для постов.

Разберем код подробнее register_taxonomy(«mycat», array(«post»), $args).

mycat — наша кастомная таксономия.
array(«post») — список пост тайпов (post types). В нашем случае это записи.
$args — массив параметров. Из название все интуитивно понятно. Но есть несколько важных моментов.
«hierarchical» => true — это параметр определяет тип таксономии. Древовидная или плоская, если другими словами рубрика или метки.

‘slug’ => ‘mycat’ — это символьный код в ЧПУ или другими словами в ссылке на страницу таксономии.

Данный код нужно вставить в файл functions.php. И результате мы получим еще одну таксономию под названием mycat.

Способ второй. Таксономию можно создать с помощью плагина PODs.

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

Скачать его можно в официальном репозитории WordPress.

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

Опубликовано: ADv Дата 16.12.2014 в рубрике Настройки 6 комментариев

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

Что такое таксономия?

Таксономия в WordPress — это одна из тех вещей, которую все используют, но не знают, что они используют именно ее. Таксономии WordPress используются для группировки записей и произвольных типов записей между собой. В ВП есть две самых популярных таксономии, которые люди постоянно используют: Рубрики и Теги. Можно использовать произвольные таксономии для создания произвольных групп и объединения их под одним «началом». Например, у вас есть произвольный тип записи под названием Книги. Даже если вы используете рубрики, возможно вы не хотите смешивать два вида Книг между собой, потому что они в корне отличаются друг от друга. Для решения этой проблемы можно зарегистрировать новую произвольную таксономию под названием Тематики. Можно добавить термы тематик типа: Приключения, Романы, Фантастика и т.д. Это позволит вам и вашим пользователям сортировать книги по тематикам. Таксономии также могут иметь иерархию, что означает у вас могут быть основные тематики типа: Фентези, Фантастика и Детские. А уже у этих тематик могут быть подтемы в каждой рубрике, как например в разделе Фентези могут быть триллеры в виде подтемы.

Теперь, когда мы прояснили, что такое произвольная таксономия, давайте выясним как создавать произвольные таксономии в WordPress. Мы покажем два способа создания произвольных таксономий. Способ 1 будет использовать плагин для тех, кто не захочет возиться с кодом. Способ 2, напротив же, будет использовать код и подойдет для тех, кто предпочитает делать всё без помощи плагинов.

Создание произвольных таксономий — Простой способ

Давайте же начнем создание произвольной таксономии. Первым делом вам необходимо установить и активировать плагин Simple Taxonomy. Далее, переходим в раздел Настройки » Custom Taxonomies где и создаем новую:

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

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

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

После указания переводов для интерфейса, нажмите на кнопку Add Taxonomy. После того, как произвольная таксономия будет создана, она появится под меню Записи и будет выглядеть так же как и Рубрики, и Теги. Также поле произвольной таксономии появится в в окне редактора записей.

Создание произвольных таксономий вручную

Добавляем следующий код в файл functions.php вашей темы или в плагин для сайта WordPress (рекомендуется) для создания иерархической произвольной таксономии типа рубрик:

Для создания не-иерархической произвольной таксономии типа Теги, добавьте следующий код в файл functions.php вашей темы или в плагин для сайта WordPress (рекомендуется):

Обратите внимание на различия между двумя кодами. Значение для параметра иерархии — true для таксономии типа Рубрики, и false — для таксономий типа Тегов. Также в массиве названий для НЕ-иерархической таксономии типа Тегов мы добавили null для параметров parent_item и parent_item_colon, что означает, что в интерфейсе ничего не будет отображаться при создании родительского элемента.

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

Вот так можно вывести термы, которые вы добавили в произвольную таксономию на отдельной странице записи. Добавьте следующую строку кода в свой файл single.php внутри цикла:

Можно добавить его в другие файлы, такие как archive.php, index.php, и в другое место по необходимости, где нужно вывести таксономию.

По-умолчанию ваши произвольные таксономии используют шаблон archive.php для отображения записей. Однако, вы можете создать собственный архив для их отображения по такому принципу — taxonomy-.php.

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

Напишите, как вы используете произвольные таксономии на своих сайтах.

По всем вопросам и отзывам просьба также писать в комментарии ниже.

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

Добавление поля с картинкой в редактор таксономии WP

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

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

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

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

Плагины для подключения картинки в таксономию

Toolset Types

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

Данные сохраняются в таблицы meta полей.

Возвращаясь к теме публикации :), я попробовал работать с полем «изображение».

Какие минусы обнаружились?

  • В базу сохраняется не код выбранной в редакторе картинки из медиа библиотеки, а url её оригинала (т.н. перый подход).
  • Не удалось сделать привязку набора полей к конкретному словарю. Поля появились во всех словарях сразу.

Category and Taxonomy Images

Этот плагин решает конкретно нашу задачу, т.е. добавляет поле выбора картинки в редактор терминов.

После включения в настройках появляется пункт — «Taxonomy image». Вам остаётся выбрать словари, куда будет добавлено поле селектора картинки.

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

Taxonomy Images

Активация плагина добавляет в меню «настройки» пункт — «Taxonomy images». Выберите словари, в которые нужно добавить поле миниатюры. Эта часть очень похожа на предыдущее описание.

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

Два последних плагина давно не обновлялись, потому немного «отстали» от новшеств WP — а именно обновления API в части работы с meta полями таксономии. Из этих двух последних я бы отдал предпочтение второму — «Taxonomy Images».

Данная запись опубликована в 04.07.2020 17:04 и размещена в wordpress. Вы можете перейти в конец страницы и оставить ваш комментарий.

Мало букафф? Читайте есчо !

Ошибка соединения с базой данных wordpress

Если вы вместо вашего сайта на wordpress увидели данную надпись Error establishing a database connection This either means that the username and password information in your wp-config.php file is incorrect or we can’t contact the database server .

Как вывести категорию товаров Woocommerce в нужном месте?

Woocommerce показывает каталог товаров (витрину) на странице — /shop/, которая создаётся автоматически при установке плагина. Здесь выводятся .

Не отображается поле с таксономией в записи WordPress

В файле functions.php создал новый тип записи portfolio и туда же добавил таксономию:

Все это в первый день делал по видеоуроку. В меню только отобразились навыки. Добавил несколько навыков и хотел добавить их к портфолио. Но там такого поля не отобразилось Пробовал как-то это исправить (самостоятельно, через wp-kama.ru), но ничего не выходило.

Затем на следующий день решил попробовать исправить эту проблему. Зашел на wp-kama.ru, там скопировал пример с регистрацией таксономии и вставил его в functions.php. Немного подкорректировал и сохранил.

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

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

register_taxonomy(‘skills’, array(‘portfolio’), array(. )

register_taxonomy(‘skills’, array(‘portfolio’, ‘post’), array(. )

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

Удалил таксономию из страницы с постами, но проблема все равно осталась.

Подскажите, в чем может быть проблема? Может я что-то делаю неправильно?

Custom Post Types: пользовательские таксономии, фильтры и архивы в WordPress

Эта статья — вторая часть полного Руководства по кастомным типам записей WordPress. Прежде чем погрузиться с головой в чтения данного практического руководства, пробегитесь взглядом по первоначальному уроку касательно настраиваемых типов публикаций Custom Post Types (далее сокращенно — CPT) для понимания базовых принципов и возможностей.

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

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

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

Таксономия позволяет отличным образом группировать различные объекты и поможет нам находить посты, которые относятся к конкретной группе опубликованных на сайте материалов. Обычно в WordPress используется для такой систематизации принадлежность записей к Рубрикам либо отбор по Меткам. Мы же создадим настраиваемую таксономию для своих CPT.

Шаг 1. Регистрируем настраиваемую функцию

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

Шаг 2. Внедряем нашу функцию и регистрируем настраиваемую таксономию

Здесь функция register_taxonomy отвечает за всю важную работу касательно создания настраиваемой таксономии (или категории — как в нашем случае) с именем ‘ movie_reviews_movie_genre ‘ для пользовательского типа постов ‘ movie_reviews ‘ (в качестве примера нам служит сайт с обзорами и отзывами о кинофильмах). Ярлыки определяют разные строки, которые используются в секции администрирования таксономии:

  • show_ui‘ =>true используется для включения редактора таксономии в панели управления.
  • show_tagcloud‘ =>false служит для отключения облака тегов.
  • hierarchical‘ =>true отвечает за формат настраиваемой таксономии.

Примечание: ‘hierarchical‘ => false отвечает за конверсию рубрик в теги.

Шаг 3. Отображение настраиваемой таксономии

После сохранения файла Movie-Reviews.php откройте свой файл с настраиваемым шаблоном — в нашем случае речь идет о файле single-movie_reviews.php — и добавьте в него следующий выделенный цветом код для включения категорий для наших постов:

Шаг 4. Что получилось

Вот мы добавили настраиваемую таксономию Movie Genre для наших постов с обзорами кинофильмов. Теперь мы сможем добавлять новые категории из админ-панели и назначать эти категории для наших CPT.

Отображение дополнительных столбцов

На странице с администрируемым списком WordPress CPT по умолчанию есть 2 колонки: Date и Comments, которые отвечают за сортировку наших пользовательских записей. Чтобы добавить другие столбцы и включить сортировку для них, выполните следующие пошаговые действия.

Шаг 1. Регистрируем функцию

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

Здесь мы применили переменный фильтр manage_edit-( Custom_Post_Type )_columns, который передает список постов в столбце как аргумент в нашу функцию.

Шаг 2. Внедряем функцию

Мы добавили 2 колонки: Director и Rating. Они появятся в админ-панели для CPT. Также мы удалили колонку Comments из нашего списка.

Шаг 3. Наполняем столбцы

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

Шаг 4. Внедрение

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

Шаг 5. Регистрация колонок как сортируемых списков

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

Шаг 6. Внедрение

Эта функция идентифицирует 2 колонки, которые будут отсортированы, а затем возвращает массив данных. Но на этом этапе работа еще не завершена.

Шаг 7. Упорядочиваем по выбранному полю

Приведенная выше функция связана с фильтром запросов и добавляет элементы к массиву запросов на основе переменных, определенных в запрашиваемом URL. Сам по себе WordPress «не знает», как упорядочить наши посты согласно выборке полей Movie Director или Movie Rating, так что нам придется «научить» наш WordPress, как это сделать. Для этой цели нам и нужна данная функция.

Мы успешно добавили 2 сортируемых колонки в секцию администрирования:

Создаем фильтры для настраиваемой таксономии

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

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

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

Шаг 2. Внедрение функции

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

Аргументы orderby, show_count, hide_empty, depth и другие определяют сортировку, отображение счетчиков числа постов в каждой категории, скрывают не связанные с ними категории, определяют максимальную глубину для отображения в иерархической структуре категорий.

Шаг 3. Отображение фильтрованных результатов

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

Шаг 4. Внедрение функции отображения контента

Функция perform_filtering получает объект запроса на конкретный пост от WordPress, а затем переводит запрос и отображает контент согласно набору переменных, содержащихся в теле объекта. Также на данном этапе происходит верификация того, является ли параметр Movie Genre частью запрашиваемых переменных, и только потом происходит выполнение запроса. Теперь вы сможете использовать фильтр для отображения кинофильмов по жанрам:

Последнее по порядку, но не по значимости: Создаем страницу архива

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

Шаг 1. Создаем для архива путь для перехода и вызова

Откройте файл плагина Movie-Reviews.php и добавьте выделенный цветом код в функцию include_template_function:

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

Шаг 2. Создаем шаблон архива

Сохраните и закройте файл плагина и затем создайте новый файл под названием archive-movie_reviews.php. Вставьте в него следующий код:

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

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

Шаг 3. Что получилось в итоге

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

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

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

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

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

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

Очередной блог фрилансера

коротко и полезно о веб-разработке

Введение в пользовательскую таксономию WordPress 3.0

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

Что такое Таксономия?

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

  • Количество оперативной памяти
  • Размер жесткого диска
  • Скорость процессора
  • Тип процессора
  • Установленная операционная система
  • и так далее…

Краткая история таксономии WordPress

Рубрики

До версии 2.3, в WordPress был только один тип таксономии для записей, под названием Рубрики. Это было удобно для блогов, а в нашем случае, нам пришлось бы создать рубрику верхнего уровня под названием “Персональные компьютеры”, затем дочернюю рубрику “Оперативная память”, которая, в свою очередь, может содержать такие дочерние рубрики как “Меньше 1Гб”, “1Гб”, “2Гб”, “4Гб” и так далее. Вторая дочерняя рубрика, от основной рубрики “Персональные компьютеры”, называлась бы “Операционная система” и содержала бы такие дочерние рубрики, как: “Windows XP”, “Mac OS”, “Red Hat”, “Ubuntu” и т.д.

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

Метки

Начиная с версии 2.3, в WordPress был добавлен второй вид таксономии под названием Метки. В отличие от рубрик, которые придумываются заранее, в зависимости от типа контента на сайте, метки предоставляют более свободный метод классификации контента.

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

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

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

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

Иерархические пользовательские таксономии

И наконец, WordPress 3.0, дает нам полностью иерархические пользовательские таксономии. Обратите внимание как иерархическое устройство позволяет упростить таксономию операционных систем, путем группировки всех вариантов операционной системы Windows в общей родительской рубрике “Windows”. Такая классификация позволит пользователям просматривать все компьютеры с ОС Windows, или например конкретные, с Windows XP.

Создание пользовательской Таксономии

Редактирование файла functions.php

В WordPress 3.0 нет возможности создавать пользовательские таксономии в панели управления. Для начального описания вашей пользовательской таксономии без использования плагина, вам понадобится добавить немного кода в файл functions.php, расположенный в папке с вашей темой. Это совсем не сложно – просто следуйте приведенным примерам.

Добавляем Таксономии в коде

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

Шаг 1. Первая функция для создания всего

Для начала, нам нужно создать функцию, которая создает все необходимые нам таксономии. Назовем функцию “build_taxonomies”. Давайте добавим эту функцию в конец файла functions.php.

Шаг 2. Описание Таксономий

Далее, для каждой таксономии, которую мы создадим, нам нужно взывать определенную WordPress-функцию, с правильными параметрами. Далее представлена эта функция, и разъяснены ее важные параметры.

  • internal_name: название таксономии, которое будет использоваться в базе данных и файлах шаблона
  • object_type: определяет типы контента, к которым можно будет применить эту таксономию. Возможные значения: “post” (запись), “page” (страница), “link” (ссылка).
  • Далее идет массив из опциональных параметров. В этой статье, мы будем использовать наиболее важные из них, а полный список можно найти в кодексе WordPress, на странице описания функции register_taxonomy. Далее идет список используемых параметров.
  • hierarchical: если значение установлено в “true”, эта таксономия будет иметь возможности иерархической структуры, как у Рубрик. Если значение “false”, то таксономия по структуре будет похожа на Метки.
  • label: это читаемое название, которое будет использоваться в интерфейсе сайта для обозначения этой таксономии.
  • query_var: если значение параметра установлено в “true”, мы сможем получать записи, на основе выбранного значения этой таксономии. Например, можно найти все записи, для которых в таксономии “операционная система” указано значение “Windows”.
  • rewrite: если значение установлено в “true”, при просмотре страницы с этой таксономией, WordPress будет использовать дружественные URL. Например, страница, отображающая все записи с операционной системой “Windows”, будет представлена следующим url: http://domain.com/operating_system/windows

Код, добавляющий таксономию “Операционная система” выглядит следующим образом:

Вставьте эту функцию, внутри ранее созданной функции build_taxonomies.

Шаг 3 Вызов функции, создающей таксономию

Для того, чтобы наша функция build_taxonomies была выполнена, нам понадобится добавить одну строчку кода, в файле functions.php. Фактически мы “прицепим” функцию build_taxonomies к событию init, путем добавления следующего кода:

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

Добавляем классификацию к новой Таксономии

Если вы правильно добавили таксономию “Операционная система” в файле functions.php, она должна появится в виде нового пункта, в блоке “Записи”, вашей панели управления. Кликните по нему, чтобы добавить необходимые классификации.

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

Добавляем больше Таксономий

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

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

Создание записи, с использованием новой Таксономии

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

Отображение различной таксономии записей

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

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

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

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

Шаг 1. Редактирование файла single.php

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

Найдите в шаблоне single.php строчку:

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

Шаг 2. Получение таксономии для текущей записи

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

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

  • $post->ID : id текущей записи
  • ‘operation_system’ : имя пользовательской таксономии. Мы проверяем, была ли назначена текущей записи, какая-либо классификация из пользовательской таксономии operation_system.
  • ‘Операционная система (ы)’ : если данные будут найдены, эта строчка будет вставлена, перед их выводом на экран.
  • ‘, ’ : если найденных значений будет несколько, то они будут разделены запятой
  • : если данные будут найдены, эта строка будет вставлена после вывода данных. В нашем случае, мы оставляем ее пустой.

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

Шаг 3. Форматирование полученного результата

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

Шаг 4. Выводим классификацию, если она найдена

Проверяем, была ли получена таксономия из предыдущих шагов. Если таксономия существует, выводим ее, предварительно обернув в div с классом “entry-utility”.

Шаг 5. Проверяем результаты

Теперь, если открыть страницу любой записи, вы должны увидеть пользовательскую классификацию, расположенную сразу после текста записи.

Просмотр списка записей, построенный на основе пользовательской таксономии

Теперь, на странице индивидуальной записи, мы можем узнать к какой классификации принадлежит текущая запись. Вы, наверное, заметили, что при отображении пользовательской классификации, термины выводятся в виде ссылки, которая должна вести на страницу с записями, принадлежащими к этой классификации. К примеру, кликнув по ссылке “Mac OS”, мы по идее, должны увидеть страницу со списком записей, с классификацией “Mac OS”.

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

Шаг 1

Откройте файл category.php, скопируйте его контент, и вставьте в новый файл, сохранив его под именем “taxonomy.php”.

Шаг 2 Получение информации о текущей классификации

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

Сразу после строки следующую строку:

Эта строка получает всю информацию о таксономии и возвращает ее в виде объекта, записанного в переменную $term. Например, классификация “Mac OS” возвращает следующий объект:

Шаг 3 Вывод Названия классификации и ее описание

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

Измените следующую строку, взятую из шаблона category.php

Эта строка выведет название текущей классификации. Далее, ниже добавьте следующую строчку:

Здесь, как не трудно догадаться, будет выведено описание классификации, если оно доступно.

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

Перевод статьи “Introducing WordPress 3 Custom Taxonomies”, автор Paul Kaiser

Рассказать друзьям

Понравилась статья? Лучший способ сказать спасибо — поделиться ссылкой в социальных сетях:

Отображение ORM-сущности в админке

Подовалов Вадим

Дата последнего входа: 20 минут назад
Город: Львов
Наименование компании: ТзОВ «Ігніс Фатум»

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

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

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

ЗЫ: Тапочками, овощами и яйцами прошу не кидаться — класс довольно сырой, не рассчитан на миллион записей связанной сущности, но со своей задачей справляется. Может кому пригодится.

Итак, что у нас есть и что мы умеем.

1. Типовое отображение таблицы из CDBResult с помощью CAdminList
2. Отображение NAME-cвойства связанной сущности, из значения серилизованного свойства текущей в вариациях:

2.1. array(«ID_другой_сущности» => значение, [«ID_другой_сущности» => значение, . ])
2.2 array(«ID_другой_сущности», [«ID_другой_сущности», . ])

3. Фильтрация по int, string полям текущей сущности и связанных с ней других сущностей, через ReferenceField

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

Связана с сущностью «Тип машины».
В поле PARTS буду писать серилизованный массив, ключами которого будут ID из 3-ей сущности, а значениями — количество «оставшихся» в машине запчастей.

Эти три сущности, де-факто описывают один объект (машину). Это тестовый пример — на боевом проекте у меня может объект составляться из 5-8 сущностей, которые в свою очередь, тоже имеют свои связи. И это все нужно удобно показать менеджеру в админке сайта.

Как выглядит результат:

У нас отображается объект Машина, поле NAME (могут быть абсолютно любые) связанной с ней сущности Тип, а данные из поля PARTS тянут поле NAME связанной сущности, вместо ключа массива.

Фильтр генерируется в зависимости от выбранных полей в select. Работает как по «родным» полям, так и по полям связанной сущности:

А теперь заглянем «под капот»:

1. Сам абстрактный «базовый» класс, от которого будем наследоваться. Добавил комментариев.

Все, основную часть сделали, теперь как выглядит страница в /bitrix/admin/ib_list.php, которая и будет отображать нашу сущность.

Это нужно для того, чтобы определить имена переменных, принимаемые из фильтра — в классе ShowAdminObject эта строка будет вырезаться из названия полей CDBResult.

Функционал добавления и редактирования пока в планах, ибо основную задачу — вывести объект из связанных сущностей работает.
Если кому мешает функциона над и под таблицей — можете просто закоментировать вызов AddGroupActionTable и AddAdminContextMenu.

Топ-пост этого месяца:  Как отметить человека в Истории Инстаграма отметка в Stories
Добавить комментарий