Нет никаких акессуаров))) это глобальное название одного произвольного типа данных — одного города, и всё. У других городов свои названия — taxmoskva, taxnovosibirsk, и т.п.
мде. у меня такое впечатление, что вы таксономии используете в качестве терминов.
тогда, зачем они вам вообще нужны?
ориентируйтесь на тип произвольных записей.
у всех записей в движке есть ID,
Движок тут не причем. Я говорил об ID в csv перед публикацией. Его невозможно задать из-за специфики материалов.
Еще раз напишу:
accessories — это не таксономия, а название произвольного типа записей. Нарпимер, все записи для Москвы имеют это название. Все записи для Спб имеют название — taxspb, Для новосибирска — taxnovosibirsk. И так далее.
accessories — это не таксономия, а название произвольного типа записей.
вот, оно, незнание движка во всей красе.
название произвольного типа записи у вас «moscow», а «accessories» это таксономия, привязанная к типу записей «moscow».
мне казалось, что само название функции register_taxonomy должно было вас навести на мысль, что это не название произвольного типа записи, а название таксономии.
Возможно я неправильно где-то выразился. Просто именно с произвольными типами записей и произвольными таксономиями я менее недели работаю. Кажется, мы с вами несколько разобрались.
Но самое интересное, что я знаю как и спокойно могу выводить слово moscow в переменную! И я этим пользуюсь успешно. Мне нужно другое.
А мне нужно вывести в переменную именно accessories. получить его в архивах и сингл страницах. Именно чтобы само слово accessories зашло в переменную.
пишите тупо код:
если тип записей "moscow", то
переменная равна "accessories",
если иначе тип записей "spb", то
переменная равна "taxspb"
иначе вы никак не получите название таксономии, которую вы используете в качестве меток.
вру, есть способ:
global $post;
$taxonomy_names = get_object_taxonomies( $post );
print_r( $taxonomy_names );
Да, все верно! Так и нужно. Но как же тогда получить их accessories и taxspb! Чтобы в зависимости от того на какой странице находился код выдавалась та или иная переменные. Если сингл или архив принадлежат Москве, то вывести в переменную accessories. Если Питеру то вывести taxspb. И так далее.
Спасибо! Это уже гигантский прорыв так как слово accessories появилось наконец-то в выводе. Но не одно, а в таком виде:
Array ( [0] => accessories [1] => metkispb )
Как его одно оставить? Что бы было просто: accessories
может $taxonomy_names[0]
?
Модератор
Юрій
(@yube)
Но не одно, а в таком виде:
Если для типа записи moscow указана только таксономия accessories, то metkispb не должно выводится для записей типа moscow. Видимо, что-то пошло не так.
На всякий случай: удаление таксономии из register_post_type и/или register_taxonomy для опр.типа записей не влияет на те записи, которым уже присвоены термы из этой таксономии, разве что термы не видно в админке, а потому отцепить можно только прямым вмешательством в БД.
Я почти уверен, что сделано слишком избыточно, что хватило бы одного типа (возможно, даже post :))), одной таксономии «города» и термов-городов.
Сработало, оказывается 0 только нужно для вывода результатов было ставить!
<?php global $post;
$taxonomy_names = get_object_taxonomies( $post, $output = 'names' );
print_r( $taxonomy_names[0] );
?>
вы print_r то измените на echo или что другое.
Получить переменную удалось, но вот после вставки ее в код через array код оказывается нерабочим. Странно, ведь уже подобным образом получилось сделать рабочие коды при получении названий городов для вывода последних комментариев и новых материалов. Может у кого будут идеи почему код не работает?.
<?php
global $post;
$taxonomy_names = get_object_taxonomies( $post, $output = 'names' );
$args3 = array(
'taxonomy' => $taxonomy_names[0],
'title_li' => '',
);
wp_list_categories($args3); ?></ul>
</div>
<?php } ?>
Такой код работает:
<?php wp_list_categories('taxonomy=accessories&title_li='); ?>
а с переменной $taxonomy_names[0] через array выше не работает. Как же можно сделать чтобы заработал?