Получение пользовательской таксономии/категории в WordPress

9 дек. 2010 г., 15:21:57
Просмотры: 30.3K
Голосов: 3

Я использую собственную таксономию для пользовательского типа записи. Она выглядит так:

register_taxonomy("our_gallery", array("gallery"), array("hierarchical" => true, "label" => "Типы", "singular_label" => "Тип", "rewrite" => true));

Я создал несколько "типов"/категорий в админ-панели, такие как "Черно-белые", "Пейзажи" и так далее...

В любом случае, я не могу понять, как получить эти категории? То есть - отобразить их на странице галереи рядом с элементами галереи?

Я пробовал:

  <?php $cat = get_the_category();
    var_dump($cat); ?>

И это отображает пустой массив - "array(0) { }". Как получить доступ к моим собственным категориям? get_the_category('our gallery') и ('gallery') также возвращают пустой массив...

Заранее спасибо :)

3
Комментарии

Этот вопрос уже был задан несколько раз — стоит ли указывать на существующие ответы вместо того, чтобы отвечать на него снова?

anu anu
9 дек. 2010 г. 16:10:25

@anu если вы знаете дублирующий вопрос, пожалуйста, добавьте ссылку на него в комментарий. Пользователи с репутацией 500+ могут голосовать за закрытие и указывать дубликат в качестве причины, я просто не могу вспомнить точное соответствие этому вопросу. :)

Rarst Rarst
9 дек. 2010 г. 16:36:40

Вот этот: http://wordpress.stackexchange.com/questions/4291/ — практически тот же самый вопрос

anu anu
9 дек. 2010 г. 19:24:20
Все ответы на вопрос 2
4
10

Думаю, вы путаетесь в терминологии.

Категория — это таксономия (taxonomy). Конкретные создаваемые категории — это элементы таксономии (terms).

our_gallery — это таксономия (taxonomy). Landscapes — это элемент таксономии (term). our_gallery не является категорией (category). Это самостоятельная таксономия (taxonomy), не имеющая отношения к таксономии категории (category).

Функция get_the_category() явно извлекает элементы таксономии (terms) для таксономии категории (category).

Чтобы получить элементы таксономии (terms) для таксономии our_gallery, вам нужна более универсальная функция get_the_terms().

9 дек. 2010 г. 15:45:52
Комментарии

Понял! Можете помочь мне извлечь 'landscape' из этого? array(1) { [17]=> object(stdClass)#378 (10) { ["term_id"]=> string(2) "17" ["name"]=> string(5) "Image" ["slug"]=> string(5) "image" ["term_group"]=> string(1) "0" ["term_taxonomy_id"]=> string(2) "19" ["taxonomy"]=> string(18) "our_gallery" ["description"]=>

Wordpressor Wordpressor
9 дек. 2010 г. 16:16:46

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

Rarst Rarst
9 дек. 2010 г. 16:38:07

Вы можете использовать the_terms($post->ID, 'our_gallery') для автоматического отображения списка через запятую для текущей записи.

TheDeadMedic TheDeadMedic
9 дек. 2010 г. 16:38:30

Но всё равно отображается ссылка, а не абзац...

Wordpressor Wordpressor
9 дек. 2010 г. 23:00:02
0

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

$taxonomy  = 'your-taxonomy-name';
$tax_terms = get_terms($taxonomy, array('hide_empty' => false));
26 нояб. 2014 г. 08:46:15