アトリエロワ

wpトピックパス(パンクズ)を作成2

function custom_breadcrumb() {
    // パンくずリストの開始タグとホームリンク
    echo '<div id="topicpath">
    <div id="topicpath-in" class="inside"><ul>';
    echo '<li class="tp-top"><a href="' . esc_url( home_url() ) . '">ホーム</a></li>';

    // ページタイプによって分岐
    if ( is_singular() ) {
        // カスタム投稿タイプの場合
        if ( is_post_type_archive() ) {
            $post_type_object = get_post_type_object( get_post_type() );
            echo '<li>' . esc_html( $post_type_object->labels->singular_name ) . '</li>';
        } else {
            // カテゴリー、タグ、通常の単一投稿ページの場合
            $categories = get_the_category();
            if ( $categories ) {
                $cat = $categories[0];
                $ancestors = get_ancestors( $cat->term_id, 'category' );

                foreach ( $ancestors as $ancestor ) {
                    $ancestor_cat = get_term( $ancestor, 'category' );
                    echo '<li><a href="' . esc_url( get_category_link( $ancestor_cat->term_id ) ) . '">' . esc_html( $ancestor_cat->name ) . '</a></li>';
                }

                echo '<li><a href="' . esc_url( get_category_link( $cat->term_id ) ) . '">' . esc_html( $cat->name ) . '</a></li>';
            }
            echo '<li>' . esc_html( get_the_title() ) . '</li>'; // 修正部分
        }
    } elseif ( is_category() ) { // カテゴリーページの場合
        $category = get_queried_object();
        $ancestors = get_ancestors( $category->term_id, 'category' );

        foreach ( $ancestors as $ancestor ) {
            $cat = get_term( $ancestor, 'category' );
            echo '<li><a href="' . esc_url( get_category_link( $cat->term_id ) ) . '">' . esc_html( $cat->name ) . '</a></li>';
        }

        echo '<li>' . esc_html( $category->name ) . '</li>';
    }

    // パンくずリストの終了タグ
    echo '</ul></div></div>';
}

PHPファイル

   <?php
    if ( function_exists('custom_breadcrumb') ) {
        custom_breadcrumb();
    }
?>

HOME > wordpress設計術 > wpトピックパス(パンクズ)を作成2

wordpress設計術

wordpress設計術