marcel
  • 0
Новичок

Правильное использование wp_get_object_terms

  • 0

Резюме:

как я могу получить имя и постоянную ссылку объекта, возвращаемого функцией wp_get_object_terms() ?

Подробно:

я создал пользовательский тип записи под названием «ge_zielgruppe» и таксономию под названием «ge_zielgruppe_taxonomy». Последние могут быть прикреплены к сообщениям и типам сообщений «ge_zielgruppe».

На отдельной странице «ge_zielgruppe» я хочу показать последние несколько сообщений, помеченных одним и тем же «ge_zielgruppe_taxonomy». Я достиг этого с

<?php
$theZielgruppe = wp_get_object_terms($post->ID, 'ge_zielgruppe_taxonomy');
$zielgruppe = new WP_Query(array('ge_zielgruppe_taxonomy' => $theZielgruppe->slug));
$zielgruppe->query('showposts=10');
if ($zielgruppe->have_posts()) :
    while ($zielgruppe->have_posts()) :
        $zielgruppe->the_post();
?>
<<--archive-stuff-->>
<?php
    endwhile;
endif;
?>

Эта часть работает (однако я не знаю, элегантна ли она).

Теперь я хотел бы поставить ссылку сразу после этих 10 постов, выглядящую так

<a href="<<--permalink to archive of 'ge_zielgruppe_taxonomy'-->>" rel="bookmark" title="More posts for <<--Name of 'ge_zielgruppe_taxonomy'-->>; ">More posts for <<--Name of 'ge_zielgruppe_taxonomy'-->></a>

Итак, как мне получить

  1. <<--permalink to archive of 'ge_zielgruppe_taxonomy'-->> а также
  2. <<--Name of 'ge_zielgruppe_taxonomy'-->>
Share
  1. Чтобы получить URL-адрес архива для этого термина таксономии, используйте что-то вроде этого (я использую ваши соглашения об именах выше и предполагаю, что $theZielgruppe это объект термина.

    $url = get_term_link( $theZielgruppe, 'ge_zielgruppe_taxonomy' );
    

    Чтобы получить имя, просто используйте

    $theZielgruppe->name
    

    Это то, что вы ищете?

    РЕДАКТИРОВАТЬ

    Ссылка выше будет выглядеть так:

    <a href="<?php echo get_term_link( $theZielgruppe, 'ge_zielgruppe_taxonomy' ); ?>" rel="bookmark" title="More posts for <?php echo $theZielgruppe->name; ?>; ">More posts for <?php echo $theZielgruppe->name; ?></a>
    

    РЕДАКТИРОВАТЬ 2

    wp_get_object_terms() возвращает массив терминов. Если вы изменили каждое использование $theZielgruppe to $theZielgruppe[0], чтобы использовать первый термин, к которому относится текущий ge_zielgruppe . Предупреждение, однако: wp_get_object_terms() может возвращаться либо как пустой массив, либо как файл WP_Error . Возможно, вы захотите изменить свой код, чтобы проверить это:

    <?php
    $theZielgruppe = wp_get_object_terms($post->ID, 'ge_zielgruppe_taxonomy');
    if( !empty( $theZielgruppe ) && !is_wp_error( $theZielgruppe ) ):
        $theZielgruppe = $theZielgruppe[0];
        $zielgruppe = new WP_Query(array('ge_zielgruppe_taxonomy' => $theZielgruppe->slug));
        $zielgruppe->query('showposts=10');
        if ($zielgruppe->have_posts()) :
            while ($zielgruppe->have_posts()) :
                $zielgruppe->the_post();
        ?>
        <<--archive-stuff-->>
        <?php
            endwhile;
        endif;
        ?>
        <a href="<?php echo get_term_link( $theZielgruppe, 'ge_zielgruppe_taxonomy' ); ?>" rel="bookmark" title="More posts for <?php echo $theZielgruppe->name; ?>; ">More posts for <?php echo $theZielgruppe->name; ?></a>
        <?php
    endif;
    ?>
    
    • 0

Оставить ответ

You must login to add an answer.