<?php
/* ---------------------------------------------------------------------------
 * breadcrumb
 * --------------------------------------------------------------------------- */
function ds1_the_breadcrumb() {
    if (is_front_page()) return;

    echo '<nav class="breadcrumb"><ol>';
    
    // الصفحة الرئيسية
    echo '<li><a href="' . home_url() . '">' . __('Home', 'ds1') . '</a></li>';

    // صفحات داخلية
    if (is_singular()) {
        global $post;

        // أنواع مخصصة
        $post_type = get_post_type();
        $post_type_obj = get_post_type_object($post_type);

        // تصنيفات مرتبطة بنوع المقال
        $taxonomies = get_object_taxonomies($post_type, 'objects');
        // $taxonomies = ['location'];

        // إذا كان له أرشيف
        if ($post_type !== 'post' && !empty($post_type_obj->has_archive)) {
            echo '<li><a href="' . get_post_type_archive_link($post_type) . '">' . $post_type_obj->labels->name . '</a></li>';
        }

        // عرض التصنيفات المرتبطة
        foreach ($taxonomies as $tax) {
            if (!$tax->hierarchical) continue;
            $terms = wp_get_post_terms($post->ID, $tax->name);
            if (!empty($terms)) {
                $term = $terms[0];
                $parents = get_ancestors($term->term_id, $tax->name);
                $parents = array_reverse($parents);
                foreach ($parents as $parent_id) {
                    $parent_term = get_term($parent_id, $tax->name);
                    echo '<li><a href="' . get_term_link($parent_term) . '">' . esc_html($parent_term->name) . '</a></li>';
                }
                echo '<li><a href="' . get_term_link($term) . '">' . esc_html($term->name) . '</a></li>';
                break;
            }
        }

        // عرض الآباء في الصفحات العادية
        if (is_page() && $post->post_parent) {
            $ancestors = array_reverse(get_post_ancestors($post->ID));
            foreach ($ancestors as $ancestor_id) {
                echo '<li><a href="' . get_permalink($ancestor_id) . '">' . get_the_title($ancestor_id) . '</a></li>';
            }
        }

        // العنوان الحالي
        echo '<li>' . get_the_title() . '</li>';
    }

    // تصنيف أو أرشيف
    elseif (is_category() || is_tax()) {
        $term = get_queried_object();
        $parents = get_ancestors($term->term_id, $term->taxonomy);
        $parents = array_reverse($parents);
        foreach ($parents as $parent_id) {
            $parent_term = get_term($parent_id, $term->taxonomy);
            echo '<li><a href="' . get_term_link($parent_term) . '">' . esc_html($parent_term->name) . '</a></li>';
        }
        echo '<li>' . esc_html($term->name) . '</li>';
    }

    // أرشيف نوع مخصص
    elseif (is_post_type_archive()) {
        echo '<li>' . post_type_archive_title('', false) . '</li>';
    }

    // أرشيف تصنيفي
    elseif (is_archive()) {
        echo '<li>' . get_the_archive_title() . '</li>';
    }

    // صفحة نتائج البحث
    elseif (is_search()) {
        echo '<li>' . sprintf(__('Search results for "%s"', 'ds1'), get_search_query()) . '</li>';
    }

    // صفحة 404
    elseif (is_404()) {
        echo '<li>' . __('Page not found', 'ds1') . '</li>';
    }

    echo '</ol></nav>';
}
