Главная > Веб мастерская > WordPress > Таксономии WordPress

Таксономии WordPress

Таксономии wordpress (Taxonomies)

new-taxonomy

1. Общие сведения

Таксономии wordpress назначаются определённым типам постам. Определённая таким образом таксономичность позволяет фильтровать посты и показывать только нужные (соответствующие определённой таксономии и её термам).

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

Встроенная Таксономия, Стандартная Таксономия – это одна из Таксономий, встроенных в Вордпресс по умолчанию, которая доступна в любой теме WordPress. К Встроенным Таксономиям относятся:

  • Категории (Category) со слагом ‘category’
  • Метки (Tag) со слагом ‘post_tag’
  • Ссылочная категория (Link Category) со слагом ‘link_category’

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

Произвольная таксономия (Custom Taxonomy) – это таксономия wordpress, создаваемая в плагинах или файле functions.php темы с помощью функции register_taxonomy().

Терм таксономии (Term) – относящийся к отдельной таксономии элемент, который определяет одно из значений этой таксономии. Так одна таксономия может содержать несколько различных термов, и один пост может быть ассоциирован сразу с несколькими термами. Например, стандартная таксономия «Рубрики» может иметь несколько термов с названиями «html», «seo», «php5», являющихся названиями рубрик.

Иерархическая таксономия – это таксономия wordpress, термы которой могут иметь в качестве потомков других термов этой же таксономии. Примером иерархической таксономии являются стандартная таксономия «Рубрики», назначаемая для стандартных записей.

Неиерархическая таксономия – это таксономия, термы которой не могут иметь потомков. Примером такой таксономии является стандартная таксономия «Метки», назначаемая для стандартных записей.

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

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

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

2. Создание новой Произвольной Таксономии WordPress

Чтобы создать новый тип таксономии, необходимо:

Шаг 1. Создать функцию с любым именем, внутри которой вызывается register_taxonomy(), с указанием для неё в качестве аргументов названия новой Таксономии, Типа постов для которых таксономия должна быть применена, и массива параметров $args определяющих свойства таксономии (смотри раздел 5 данного руководства).

Шаг 2. Функцию из шага 2 привязать к экшен-хуку ‘init’.

Детальное описание шагов 1-2.

Функция register_taxonomy() принимает три аргумента:

1-ый аргумент. Слаг таксономии (название таксономии, содержащее только английский буквы в нижнем регистре, цифры и знаки тире и подчёркивания). Данный слаг не должен совпадать с зарезервированными названиями. Обязательный аргумент.

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

Есть пять стандартных типов постов: ‘post’, ‘page’, ‘mediapage’, ‘attachment’, ‘revision’, ‘nav_menu_item’, но могут существовать и любые другие Произвольные Типы постов, создаваемых с помощью функции register_post_type(). Можно одновременно добавить одну и ту же таксономию к нескольким типам постов.

Если этот параметр будет пропущен и установлен в NULL, то таксономия будет зарегистрирована, но не будет связана ни с одним Типом Постов. Такую таксономию можно будет позже привязать к любому Произвольному Типу Постов, создаваемому с помощью функции register_post_type() и её параметра ‘taxonomies’. Необязательный аргумент.

3-ий аргумент. Массив параметров $args. Необязательный аргумент. Подробнее о нём смотри раздел 5 данного руководства.

Пример создания неиерархической таксономии с именем ‘pumpkin_size’ для Произвольных постов с именем ‘pumpkin’:

function pumpkin_size_init()
{
	register_taxonomy(
		'pumpkin_size',
		'pumpkin',
		array(
			'label' => 'Размер тыквы'
		)
	);
}
add_action( 'init', 'pumpkin_size_init');

Также пример создания новой Произвольной таксономии можно увидеть здесь.

3. Описание таблиц БД MySQL, связанных с таксономиями

Описание таблиц БД MySQL для хранения таксономии Вордпресса можно найти здесь.

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

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

В wp_relationships храниться соответствие постов (из таблицы wp_posts) и термов таксономий (из таблицы wp_terms).

4. Пример создания простейшей иерархической и неиерархической таксономий

Пример создания иерархической таксономии

add_action( 'init', 'create_pumpkin_taxonomy_sort' );
function create_pumpkin_taxonomy()
{
	$args= array('hierarchical'=>true, 'label'=>'Сорт тыквы'); //Массив параметров
	register_taxonomy('pumpkin-sort', 'pumpkin', $args);
}

 

Пример создания неиерархической таксономии

add_action( 'init', 'create_pumpkin_taxonomy_sort' );
function create_pumpkin_taxonomy_sort()
{
	$args= array('hierarchical'=>false, 'label'=>'Размер тыквы'); //Массив параметров
	register_taxonomy('pumpkin-size', 'pumpkin', $args);
}
Примечания:
  • Элемент ‘label’ в массиве параметров для функции вообще-то необязателен. Если он будет отсутствовать, то для неиерархической таксономии название пункта меню для просмотра всех термов этой таксономии будет «Метки». Для иерархической таксономии это название будет «Рубрики». Но рекомендуется всегда этот элемент указывать, чтобы было ясно, какая таксономия здесь на самом деле.

5. Детальное описание параметров, передаваемых в функцию register_taxonomy()

Массив $args – массив параметров. Этот массив передаётся в функцию register_taxonomy() третьим аргументом. В данном разделе даётся описание параметров этого массива, которые определяют свойства добавляемой таксономии.

Обязательные элементы массива отсутствуют

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

Элемент ‘labels’

Данный элемент является массивом и предназначен для того, чтобы описать ярлыки и названия различных элементов в админ-модуле, связанных с таксономией. Если этот массив не определять или сделать пустым, то все соответствующие ярлыки и названия для данной таксономии будут назначены по умолчанию. Если не указать значения элемента ‘labels’, то для неиерархической таксономии будут те же названия, что и для таксономий «Метки», для иерархической будут те же названия, что и для «Рубрики».

Массив ‘labels’ может содержать элементы со следующими ключами:

name (строка) – переопределяет элемент ‘label’ в массиве параметров $args. По умолчанию _x( ‘Post Tags’, ‘taxonomy general name’ ) или _x( ‘Categories’, ‘taxonomy general name’ ). В админ-модуле отображается как заголовок метабокса с таксономией на странице добавления поста.

singular_name (строка) – название одного единственного элемента таксономии. По умолчанию _x( ‘Post Tag’, ‘taxonomy singular name’ ) или _x( ‘Category’, ‘taxonomy singular name’).

search_items (строка) – на странице просмотра элементов в данной таксономии справа есть кнопка для поиска нужного терма. Этот текст будет текстом этой кнопки. По умолчанию __( ‘Search Tags’ ) или __( ‘Search Categories’ ).

popular_items (строка) – отображается вверху на странице с термами для данной таксономии как заголовок к списку популярных термов. По умолчанию __( ‘Popular Tags’ ) или null.

all_items (строка) – применяется в иерархической таксономии. Отображается на странице добавления нового поста в элементе с данной таксономией как заголовок, под которым рассположен список всех доступных термов. По умолчанию __( ‘All Tags’ ) или __( ‘All Categories’).

parent_item (строка) – только для иерархических таксономий, как строка, обозначающая поле выбора родительского терма. По умолчанию __( ‘Parent Category’ ).

parent_item_colon (строка) — только для иерархических таксономий, аналогична ‘parent_item’, но должна быть с двоеточием на конце. По умолчанию __( ‘Parent Category:’).

edit_item (строка) – название страницы, на которой должно происходить редактирование ранее добавленного элемента таксономии. По умолчанию __( ‘Edit Tag’ ) или __( ‘Edit Category’).

update_item (строка) – на странице с термами при изменении свойств лейбла, будет отображена кнопка с этим текстом, при нажатии на которую свойства терма будут обновлены. По умолчанию __( ‘Update Tag’ ) или __( ‘Update Category’ ).

add_new_item (строка) – название кнопки и раздела на странице с лейблами. Данный раздел предназначен для добавления новых лейблов, а при нажатии кнопки с данным текстом отправляется заполненная HTML-форма. По умолчанию __( ‘Add New Tag’ ) или __( ‘Add New Category’ ).

new_item_name (строка) – Не известно для чего нужно. По умолчанию __( ‘New Tag Name’ ) или __( ‘New Category Name’ ).

separate_items_with_commas (строка) – Только для неиерархических таксономий. Отображается на странице добавления нового поста в разделе с таксономией как предложение ввести список термов через запятую. По умолчанию __( ‘Separate tags with commas’ ) или null.

add_or_remove_items (строка) – при отключенном JavaScript текст, отображаемый в meta-box. Только для неиерархических таксономий. По умолчанию __( ‘Add or remove tags’ ).

choose_from_most_used (строка) – отображается как текст на странице добавления новых постов в разделе для таксономии, предлагающий отобразить наиболее используемые термы. Только для неиерархических таксономий. По умолчанию __( ‘Choose from the most used tags’ ).

menu_name (строка) – текст пункта административного меню, при выборе которого попадаешь на страницу со списком термов данной таксономии для данного поста.

Другие элементы массива

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

public (Boolean) – Если TRUE, то эту таксономию следует отображать в административном меню. По умолчанию TRUE.

show_in_nav_menus (Boolean) – Показывать ли ссылку на таксономию в административном меню. Если FASLE, то показано не будет, но все страницы для этой таксономии буду доступны, так что на них можно перейти и, например, добавить новый терм. По умолчанию имеет тоже значение, что и параметр ‘public’.

show_ui (Boolean) — Показывать ли панель для этой таксономии на странице добавления нового поста. Если FALSE, то эта панель будет скрыта и новому посту нельзя будет назначить ни один терм данной таксономии. Также соответствующая страница для управления таксономией будет убрана из административного меню. По умолчанию имеет значения параметра ‘public’.

show_tagcloud (Boolean) – если TRUE, то в стандартном встроенном в Вордпресс виджете WP_Widget_Tag_Cloud можно будет выбрать добавляемую таксономию, чтобы из её термов составить облако тегов. По умолчанию имеет то же значение, что и элемент ‘show_ui’

hierarchical (Boolean) – Если TRUE, то создаётся иерархическая таксономия (по типу рубрик, когда одна рубрика может включать в себя другие рубрики). Если FASLE, то это неиерархическая таксономия (по типу меток, когда каждый терм таксономии независим от других). По умолчанию FALSE.

update_count_callback – имя функции, которая должна обновлять количество количество постов, находящихся в терме таксономии. В описании функции рекомендуется этот элемент устанавливать в значение ‘_update_post_term_count’, что иногда может исправить работу функции get_the_term_list()

query_var (Boolean или строка) – Если FALSE, то через URL обратиться к данной таксономии и выбрать её, чтобы показать на сайте, уже будет нельзя. Также тогда нельзя будет извлекать посты с помощью синтаксиса $wp_query = new WP_Query( array({taxonomy}=>{term}) ). Но при этом можно делать выборку постов данной таксономии с помощью сложной формы. Если задать строку, то эта строка должна содержать строку (Параметры Цикла для выборки постов этой таксономии), которая передаётся внутрь WP_Query() для выборки нужных типов постов, когда через URL сайта обращаются к данной таксономию. Рекомендуется этот параметр оставлять по умолчанию. ВНИМАНИЕ. Это очень скользкий параметр, то он действует, то не действует. Вероятно, его действие зависит от других параметров блога, например, перманентных ссылок, а также истории этих ссылок.

rewrite (Boolean или массив) — Если TRUE, то для доступа к термам данной таксономии будут использоваться постоянные ссылки вида /taxonomy/term (если постоянные ссылки включены). Если FALSE, то будут использоваться вид ссылок по умолчанию ?taxonomy=term и не будет допускаться использование постоянных ссылок. Если массив, то может содержать элементы с такими ключами: ‘slug’, ‘with_front’, ‘hierarchical’. Например, параметр в виде array(‘slug’=>’new-name’) сделает доступ к термам данной таксономии доступным по ссылке /new-name/{term_slug}/. Но доступ к странице /new-name/ всегда будет возвращать страницу 404 (Вордпресс не показывает все посты из таксономии, а только посты из определённого терма таксономии). По умолчанию TRUE.

capabilitiesне изучено

_builtin (Boolean) – не для обычного использования. Если TRUE, то означает, что данный тип постов является встроенным в Вордпресс. По умолчанию FALSE.

6. Извлечение постов определённой таксономии с помощью WP_Query

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

Создание любой таксономии с помощью register_taxonomy() автоматически создаёт специальную query-переменную для использования в классе WP_Query. Поэтому для извлечения постов из определённой таксономии с помощью WP_Query можно использовать слаг таксономии как название query-переменной таким образом:

$query = new WP_Query( array({taxonomy_slug} => {term_slug}) );

ии ‘pumpkin_size’ и следует извлечь все посты, ассоциированные с термом ’10kg’ этой таксономии, то тогда PHP-код должен быть следующим:

$query = new WP_Query( array('pumpkin_size' => '10kg') );

 

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

Функция wp_set_object_terms()

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

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

wp_set_object_terms($object_id, $terms, $taxonomy, $append), где

$object_id – идентификатор поста;

$terms – термин таксономии, который будет назначен. Желательно, чтобы такой терм уже существовал в таксономии.

$taxonomy – само название таксономии. Таксономия обязательно должна существовать.

Ссылка: http://codex.wordpress.org/Function_Reference/wp_set_object_terms

Файл Вордпресса: wp-includes/taxonomy.php

Функция get_terms()

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

Простейший пример, позволяющий отобразить все непустые термы и их свойства:

< ?php
echo '<pre>';
print_r(get_terms('pumpkin-size'));
echo '</pre>';
?>

Ссылка: http://codex.wordpress.org/Function_Reference/get_terms

Файл Вордпресса: wp-includes/taxonomy.php

Функция term_exists()

Проверяет, существует ли определённый терм в определённой таксономии. Возвращает FALSE, если терм в данной таксономии не существует.

Ссылка: http://codex.wordpress.org/Function_Reference/term_exists

Файл Вордпресса: wp-includes/taxonomy.php

8. Функции для получения информации о том, какие термы назначены определённому посту

Функция wp_get_post_categories()

Является обёрткой для wp_get_object_terms. Предназначена для определения термов стандартной таксономии ‘category’ у постов.

Ссылка: http://codex.wordpress.org/Function_Reference/wp_get_post_categories

Файл Вордпресса: wp-includes/post.php

Функция wp_get_post_tags()

Является обёрткой для wp_get_object_terms. Предназначена для определения термов стандартной таксономии ‘post_tag’ у постов.

Ссылка: http://codex.wordpress.org/Function_Reference/wp_get_post_tags

Файл Вордпресса: wp-includes/post.php

Функция wp_get_post_terms()

Является обёрткой для wp_get_object_terms. Если не указать таксономию, то её действие аналогично функции wp_get_post_tags, но может использоваться для получения термов и других таксономий.

Ссылка: http://codex.wordpress.org/Function_Reference/wp_get_post_terms

Файл Вордпресса: wp-includes/post.php

Функция wp_get_object_terms()

Определяет термы определённой таксономии, которые назначены нужному посту (или нескольким постам).

Ссылка: http://codex.wordpress.org/Function_Reference/wp_get_object_terms

Файл Вордпресса: wp-includes/taxonomy.php

Функция the_terms()

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

the_terms( $id, $taxonomy, $before, $sep, $after ), где

$id – идентификатор поста,

$taxonomy – название таксономии, термы которой необходимо вывести в браузер,

$before – строка, выводимая перед списком термов,

$sep – строка, служащая разделителем термов,

$after – строка, выводимая после списка термов.

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

Ссылка: http://codex.wordpress.org/Function_Reference/the_terms

Файл Вордпресса: wp-includes/category-template.php

Функция get_the_term_list()

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

Ссылка: http://codex.wordpress.org/Function_Reference/get_the_term_list

Файл Вордпресса: wp-includes/category-template.php

9. Другие функции

Функция taxonomy_exists()

Условная функция, проверяющая, что таксономия с нужным именем существует.

Ссылка: http://codex.wordpress.org/Function_Reference/taxonomy_exists

Файл Вордпресса: wp-includes/taxonomy.php

Функция is_taxonomy_hierarchical()

Функция проверяет, является ли нужная таксономия иерархической или нет.

Ссылка: http://codex.wordpress.org/Function_Reference/is_taxonomy_hierarchical

Файл Вордпресса: wp-includes/taxonomy.php

Функция is_tax()

Условная функция, которая проверяет, открыта ли сейчас архивная страница таксономии. Функция может применяться для определения, открыта ли сейчас любая страница таксономии, или страница с конкретным термом таксономии. Для определения Архива Рубрик и Архива Меток лучше применять функции is_category() и is_tag()

Ссылка: http://codex.wordpress.org/Function_Reference/is_tax
Файл Вордпресса: wp-includes/query.php

10. HTML-Шаблоны и URL для отображения архивных страниц сайта с Таксономиями

URL при отключенных постоянных ссылках

Посты из любого одного терма таксономии доступны по URL вида http://localhost/wordpress/?{taxonomy_name}={term_name}. Это верно как для иерархических таксономий, так и для неиерархических. Посты, которым назначены сразу несколько Настраиваемых Таксономий, можно отобразить с помощью URL такого вида http://localhost/wordpress/?{taxonomy_name_1}={term_name_1}& {taxonomy_name_2}={term_name_2}.

Если таксономия является встроенной (такой как ‘category’, ‘tag’), то использовать вышеобозначенные способы для доступа к стандартным записям нельзя. Вышеобозначенные способы работают только для Настраиваемых Таксономий.

Пейджинация при отключенных постоянных ссылках создаётся за счёт добавления GET-параметра с именем ‘paged’, обозначающего номер страницы. Пример, http://localhost/wordpress/?{taxonomy_name}={term_name}&paged={page_number}.

URL при включенных постоянных ссылках

При постоянных ссылках (например, вида /%postname%/) для доступа к термам таксономии необходимо в массиве параметров, передаваемых в функцию register_taxonomy(), указать элемент ‘rewrite’ в значении TRUE (смотри раздел 5 данного руководства). После этого посты из одного терма с именем {term_name} для таксономии с именем {taxonomy_name} будут доступны по URL такого вида: http://localhost/wordpress/{taxonomy_name}/{term_name}/. Доступ к http://localhost/wordpress/{taxonomy_name}/ невозможен в принципе и возвратит страницу 404.

Пример регистрации таксономии, которая при включённых постоянных ссылках обеспечивает доступ к постам в этой таксономии по URL вида http://localhost/wordpress/{taxonomy_name}/{term_name}/:

< ?php
register_taxonomy('pumpkin_color', 'pumpkin', array(
'hierarchical' => false,
'label' => 'pumpkin_color',
'rewrite'=>true)
);
?>

Пейджинация при включенных постоянных ссылках создаётся за счёт добавления в конец URL окончания ‘/page/’, после которого идёт цифра, являющаяся номером страницы. Например, http://localhost/wordpress/{taxonomy_name}/{term_name}/page/{page_number}/.

HTML-Шаблоны для отображения постов в Произвольных Таксономиях

За отображение списка постов из терма какой-либо таксономии отвечают HTML-Шаблоны в порядке понижения приоритета:

  • taxonomy-{taxonomy_name}-{term_name}.php
  • taxonomy-{taxonomy_name}.php
  • taxonomy.php
  • archive.php

HTML-Шаблоны для отображения постов Встроенных Таксономий (Категорий и Меток)

Для стандартных Рубрик (‘category’) список используемых HTML-Шаблонов находится здесь.

Для стандартных Меток (‘tag’) список используемых HTML-Шаблонов находится здесь.

Примечание
  • Вордпресс позволяет отображать только посты в терме таксономии, но не может отобразить все посты из нужной таксономии без указания терма (будет выдавать страницу 404). Это верно и при включенных и при отключённых постоянных ссылках. Для реализации отображения Постов из таксономии и любых термов в ней необходимо написать свой собственный Цикл, в котором сначала получаются все термы данной таксономии, а потом выводятся все посты из этих термов.
  • На Шаблоны и URL не влияет, является ли таксономия иерархической или нет. Если таксономия иерархическая и будет выбран какой-то терм, то будут отображены все посты для этого терма, а также все наследственные термы.
    — Архив с URL, указывающий на определённый терм определённой таксономии, будет отображать посты любого типа, содержащиеся в этом терме. Вордпресс не даёт возможности в Дефолтном Цикле Постов отфильтровать результат и отобразить посты определённого типа, если таксономия назначена постам сразу нескольких типов. Например, если на сайте имеется два Произвольных Типа Постов ‘pumpkin’ и ‘radish’, и им обоим назначена таксономия ‘vegetable-weight’, то URL такого вида http://example.com/?vegetable-weight=10 будут выводиться посты обоих типов.
  • Рубрики (‘category’), являющиеся Встроенными Таксономиями, доступны по URL вида http://example.com?category={category_name} при выключенных постоянных ссылках и по URL вида http://example.com/category/{category_name}/ при включенных. Метки (‘post_tag’), являющиеся Встроенными Таксономиями, доступны по URL вида http://example.com?tag={tag_name} при выключенных постоянных ссылках и по URL вида http://example.com/tag/{tag_name}/ при включенных.
Примечания
  • Каждый раз, когда в скриптах Вордпресса добавляется новая таксономия или изменяются параметры, затрагивающие то, как должны выглядеть URL этой таксономии, необходимо в админ-модуле на странице «Параметры -> Постоянные ссылки» обновить все настройки, даже если по сути никаких изменений на этой странице не было произведено. Иначе страницы с таксономией могут не отображаться Вордпрессом. Аналогичная ситуация, впрочем, состоит и при работе с Настраиваемыми Типами постов Вордпресса. Для предотвращения такой ситуации также можно использовать функцию flush_rewrite_rules().
  • Нельзя получать доступ ко всем постам данного типа через URL, используя слаг данной таксономии. Так, при наличии таксономии с названием taxonomy-name, получить список всех постов данного типа с помощью URL /taxonomy-name/ в блоге нельзя, и вместо списка всех постов из данной таксономии будет показана страница 404. Чтобы избежать ошибки 404, необходимо создать новую отдельную страницу, которой назначить слаг, эквивалентный слагу данной таксономии.
  • Слаги любых таксономий и термов таксономий должны быть уникальными и не совпадать с другими слагами, например, слагами для типов постов или слагами-названиями постов. В случае случайного совпадения слагов Вордпресс автоматически исправляет последний указанный слаг на уникальный. Также существует список зарезервированных слагов, которые нельзя использовать в качестве названий таксономий
  • http://codex.wordpress.org/WordPress_Taxonomy — описание таблиц БД, которые используются для хранения информации о таксономиях
  • http://codex.wordpress.org/Taxonomies — общие сведения о таксономии в Вордпрессе. Есть примеры создания новой таксономии, задания параметров запроса для использования в WP_Query, приведены примеры разных функций, используемых для таксономии и т.д.
  • http://codex.wordpress.org/Category_Templates — некоторые полезные сведения о том, какими должны быть HTML-Шаблоны для стандартных Рубрик.
  • http://codex.wordpress.org/Tag_Templates — некоторые полезные сведения о том, какими должны быть HTML-Шаблоны для стандартных Меток.
  • http://codex.wordpress.org/Function_Reference#Category.2C_Tag_and_Taxonomy_Functions – можно увидеть список функций, связанных с таксономиями.

Файлы Вордпресса

  • wp-includes/taxonomy.php – Taxonomy API
  • wp-includes/category.php – WordPress Category API
  • wp-includes/category-template.php — Category Template Tags and API

NEW!!! Полезное, нужное, важное:

Где заработать в интернете деньги? Надёжно, честно, без обмана!
Платежные системы, кошельки и обменники для работы

Лучшие хостинги, сервера и прочее для сайтов

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

Продвижение молодого сайта

Основная трудность — это недостаток времени существования сайта — и не фига не сделаешь с этим фактом. И именно по этому продвижение молодого сайта отличается от периодической раскрутки старого, трастового ресурса.

7 комментариев

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

    • Добрый день. Уник. заголовок и прочее — это вы имеете в виду Мета теги title, description и keywords? Если да, то все зависит от того, каким Вы образом их прописываете в других записях: если плагин, то какой плагин вы используете? , если шаблон страницы генерирует — то аналогично. Yoast WordPress SEO, например, в любой таксономии прописывает мета-теги (если в настройках выбрать конечно). Вы поточнее проблему Вашу обрисуйте))

      • Я имел введу именно Мета теги title, description и keywords. Использую плагин «platinum seo pack» там можно прописать заголовок, но один для всех таксономий (у меня несколько разделов таксономий). К примеру вот нашел код:

        <?php if (is_tax('akter')) echo '’; ?>

        Возможно Вы знаете, как вывести название таксономии?

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

    • $term = get_term_by( ‘slug’, get_query_var( ‘term’ ), get_query_var( ‘taxonomy’ ) );
      $the_tax = get_taxonomy( get_query_var( ‘taxonomy’ ) );
      $title = $term->name;
      $text = cloudfw_inline_format( $term->description );

      $that->set_meta(‘titlebar_title’, sprintf( $the_tax->labels->name . ‘: %s’, $title) );
      $that->set_meta(‘titlebar_text’, $text );

      $that->return_layout( ‘page.php’ );

      У меня так реализовано. Многое от шаблона зависит.

      • Извините за назойливость, но не совсем понятно, что с этим кодом делать и куда именно прописывать описание и ключевые слова.

    • $term_name = apply_filters( ‘single_term_title’, $term->name );

      Возвращает текст, заголовок текущей таксономии (категории, метки и т.п.). Если заголовок получить не удалось, вернется null.
      Блин, код кушает((( С примерами на почту Вам отправил.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *