Как отобразить пользовательские таксономии на странице категорий Wordpress? - PullRequest
0 голосов
/ 11 июля 2019

Я использую расширенные настраиваемые поля для добавления настраиваемых таксономий на мою страницу категорий (переименованную в «Авторы»), и хотя я могу предоставлять не таксономические настраиваемые поля, я не могу сделать то же самое для любых таксономических отношений, которые эта категория может иметь даже в простейшем виде. .

Я пытался использовать руководство по раскрытию таксономий на веб-сайте ACF, зацикливая соответствующие записи в цикле foreach, но безрезультатно.

В сообщениях я использовал 'the_terms' и извлекал различные пользовательские таксономии, используя идентификатор сообщения, но я не смог настроить его для использования на странице категории.

Это то, что я использую в сообщениях и прекрасно работает:

<?php the_terms( $post->ID, 'century', '', ' , ' ); ?>

Поскольку категория не является публикацией, the_terms не работает в этом контексте. Это то, что я использую в категории, чтобы показать ее пользовательские таксономии в основном:

<?php 
$term = get_queried_object();

$locations = get_field('location', $term);
$century = get_field('century', $term);
$tradition = get_field('tradition', $term);
$characteristics = get_field('characteristics', $term);
$related = get_field('related', $term);

foreach($locations as $location){
echo $location;
} 
foreach($century as $centur){
echo $centur;
} 
foreach($tradition as $traditio){
echo $traditio;
} 
foreach($characteristics as $characteristic){
echo $characteristic;
}
foreach($related as $relate){
echo $relate;
}
?>  

Единственные возвращаемые результаты: $ location и $ century. Century не является таксономическим отношением, и местоположение возвращает идентификатор - все мои таксономические отношения возвращают идентификатор, потому что изменение его для отображения Term Object приводит к сбою страницы при использовании вышеуказанного кода. Это кажется отдельной, но, вероятно, связанной проблемой.

В идеале я хочу зациклить вышеупомянутые таксономии в следующем формате:

<?php 

$category = get_queried_object();
$terms = get_field('location', $category);

if( $terms ): ?>

    <ul>

    <?php foreach( $terms as $term ): ?>

        <h2><a href="<?php echo get_term_link( $term ); ?>"><?php echo $term->name; ?></a></h2>

    <?php endforeach; ?>

    </ul>

<?php endif; ?>

Проблема в том, что этот код в настоящее время ничего не возвращает.

Заранее спасибо!

Edit:

Это результаты из var_dump ($ category)

object(WP_Term)#9457 (17) { ["term_id"]=> int(196) ["name"]=> string(7) "Jan Hus" ["slug"]=> string(7) "jan-hus" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(196) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(11) ["filter"]=> string(3) "raw" ["term_order"]=> string(1) "0" ["cat_ID"]=> int(196) ["category_count"]=> int(11) ["category_description"]=> string(0) "" ["cat_name"]=> string(7) "Jan Hus" ["category_nicename"]=> string(7) "jan-hus" ["category_parent"]=> int(0) }

1 Ответ

0 голосов
/ 13 июля 2019

Попробуйте что-то вроде ниже - вы должны использовать комбинацию во втором параметре get_field - https://www.advancedcustomfields.com/resources/get_field/

    $queried_object = get_queried_object(); 
    $taxonomy = $queried_object->taxonomy;
    $term_id = $queried_object->term_id;  

    $image = get_field('field_5d04699ba10da', $taxonomy . '_' . $term_id);

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

...