Как получить категорию записи и связать её с архивом (категории)
Я пытаюсь создать кнопку в боковой панели, которая связана с отображаемой записью. По сути, кнопка должна показывать "другие новости в КАТЕГОРИИ1". У меня есть такой код:
<div id="pagine">
<?php
$category = get_the_category();
if($category[0]){
echo '<a href="'.get_category_link($category[0]->term_id ).'"><div id="pagine"><ul><li>Новости в '.$category[0]->cat_name.'</li></ul></div></a>';
}
?>
</div>
который, к сожалению, отображает неправильную категорию. Не могли бы вы подсказать, как это сделать правильно. Это не должно быть сложным, я только начал работать с WordPress.
Один из этих трёх вариантов должен подойти вам...
1. Функция: the_category();
Новости в <?php the_category(', '); ?>
Отображается как:
Новости в WordPress, Компьютеры, Блоггинг
А если записи назначена только одна категория, это будет выглядеть так:
Новости в WordPress
2. Функция: get_the_category_list();
<div id="pagine"><?php echo get_the_category_list(); ?></div>
Отображается как:
<div id="pagine">
<ul class="post-categories">
<li>
<a href="http://example.com/category/wordpress/" title="Просмотреть все записи в Business" rel="category tag">WordPress</a>
</li>
<li>
<a href="http://example.com/category/computers/" title="Просмотреть все записи в Business" rel="category tag">Компьютеры</a>
</li>
</ul>
</div>
А если записи назначена только одна категория, вывод будет таким:
<div id="pagine">
<ul class="post-categories">
<li>
<a href="http://example.com/category/wordpress/" title="Просмотреть все записи в Business" rel="category tag">WordPress</a>
</li>
</ul>
</div>
3. Функция: single_cat_title();
Если вы хотите показать только одну категорию (будет показана категория с наименьшим ID), независимо от того, сколько категорий назначено записи, используйте что-то вроде этого:
<div id="pagine">
<ul>
<li>
<?php
$category = get_the_category();
echo '<a href="'.get_category_link($category[0]->cat_ID).'">Новости в ' . $category[0]->cat_name . '</a>';
?>
</li>
</ul>
</div>
Приведённый выше код всегда показывает одну категорию, например:
Новости в WordPress
Итак, учитывая приведённые коды (и то, что делает каждый из них), выберите подходящий для ваших нужд.

Функция get_the_category возвращает массив объектов stdClass, содержащих все категории, связанные с текущим post_id.
Обращение к $category[0] позволит получить первую категорию в массиве. Для просмотра структуры данных можно использовать:
<?php print_r( $category ); ?>

Спасибо, Chris_O. Причина, по которой отображалась неправильная категория, в том, что по какой-то причине большинство записей имеют неверную категорию! print_r показал, что большинство из них находятся в неправильной категории. Но самое тревожное, что в WP CMS запись находится в правильной категории! Например. В CMS postA находится в categoryA, тогда как с print_r он показывает categoryB! Как вы думаете, почему так происходит? Спасибо за ваше время
