WordPress面包屑导航标签

风中赏雪 Wordpress Wordpress 2025-09-27 107 0

在 WordPress 主题的 functions.php 文件中添加以下代码,创建一个可重用的面包屑导航函数:


function custom_breadcrumbs() {
    // 面包屑容器
    echo '<ul class="trail-items">';
    echo '<meta name="numberOfItems" content="' . esc_attr(count(get_post_ancestors(get_the_ID())) + 2) . '">';
    echo '<meta name="itemListOrder" content="Ascending">';

    // 首页项
    echo '<li itemprop="itemListElement" class="trail-item trail-begin">
            <a href="' . esc_url(home_url('/')) . '" rel="home" itemprop="item">
                <span itemprop="name">' . esc_html__('Home', 'text-domain') . '</span>
            </a>
            <meta itemprop="position" content="1">
          </li>';

    // 分类页面处理
    if (is_category()) {
        $current_cat = get_queried_object();
        echo '<li itemprop="itemListElement" class="trail-item trail-end">
                <a href="' . esc_url(get_category_link($current_cat->term_id)) . '" itemprop="item">
                    <span itemprop="name">' . esc_html($current_cat->name) . '</span>
                </a>
                <meta itemprop="position" content="2">
              </li>';
    }

    // 文章页面处理
    if (is_single()) {
        $categories = get_the_category();
        if ($categories) {
            $primary_cat = $categories[0];
            echo '<li itemprop="itemListElement" class="trail-item">
                    <a href="' . esc_url(get_category_link($primary_cat->term_id)) . '" itemprop="item">
                        <span itemprop="name">' . esc_html($primary_cat->name) . '</span>
                    </a>
                    <meta itemprop="position" content="2">
                  </li>';
        }

        echo '<li itemprop="itemListElement" class="trail-item trail-end">
                <a href="' . esc_url(get_permalink()) . '" itemprop="item">
                    <span itemprop="name">' . esc_html(get_the_title()) . '</span>
                </a>
                <meta itemprop="position" content="3">
              </li>';
    }

    echo '</ul>';
}