web-dev-qa-db-ja.com

ブログ情報にカスタム分類法を追加する

申し訳ありませんが、この記事のタイトルを付ける方法がよくわかりません。私のカスタムタクソノミーを検索しても、 "Posted In"の後に何も表示されません。下記のカテゴリphpを追加する方法についてはよくわかりません。

何か手助けをいただければ幸いです。if/else文が必要ですか。

        <p class="post-info"><?php the_time('F j, Y'); ?> | by <a href="<?php echo get_author_posts_url(get_the_author_meta('ID')); ?>"><?php the_author(); ?></a> | Posted in

        <?php
            $categories = get_the_category();
            $separator = ", ";
            $output = '';

            if ($categories) {

                foreach ($categories as $category) {

                    $output .= '<a href="' . get_category_link($category->term_id) . '">' 
                    . $category->cat_name . '</a>'  . $separator;

                }
                echo trim($output, $separator);
                }
        ?>

</p>
1
Ashley

get_the_terms() は、投稿に関連するカスタム分類法の用語を取得するために必要な関数です。

これはデフォルトのカテゴリ分類のget_the_category()に似ていますが、まったく同じではありません。

[以下の最初のコメントに答えるために編集された]

持っているコードをカテゴリに合わせて、カテゴリまたは用語を表示する方法は次のとおりです。

<?php
    $categories = get_the_category();
    $separator = ", ";
    $output = '';

    if ($categories) {

        foreach ($categories as $category) {

            $output .= '<a href="' . get_category_link($category->term_id) . '">' 
            . $category->cat_name . '</a>'  . $separator;

        }
        echo trim($output, $separator);
    }
    elseif ( $terms = get_the_terms( get_the_ID(), 'my-custom-taxonomy' ) ) {

        foreach ( $terms as $term ) {

            $output .= '<a href="' . get_term_link( $term, 'my-custom-taxonomy' ) . '">' 
            . $term->name . '</a>'  . $separator;

        }
        echo trim( $output, $separator );
    }
?>

分類のため、'my-custom-taxonomy'(2回)を実際のスラグに置き換えることを忘れないでください。

このif/else構造を使用することによって、投稿がカテゴリとカスタム分類法の用語の両方を持つ場合、カテゴリのみが表示されることに注意してください。そのような場合に両方を表示したい場合は、単にelseififに変更するだけです。

参考文献:

0
Iceable