Theo dõi Yestech trên goole news

Hướng dẫn viết function custom breadcrumbs wordpress flatsome theme

huong dan viet function custom breadcrumbs wordpress flatsome theme

Tầm quan trọng của breadcrumbs trong website như thế nào?

Breadcrumbs trong website đóng vai trò quan trọng trong việc cung cấp dẫn đường cho người dùng khi duyệt qua các trang và hiểu vị trí của họ trong cấu trúc website. Breadcrumbs (còn được gọi là “đường dẫn”) là một chuỗi các liên kết được hiển thị ở đầu trang hoặc ở trên cùng của trang web, cho phép người dùng theo dõi quá trình điều hướng của mình từ trang gốc đến trang hiện tại.

Dưới đây là một số tầm quan trọng của breadcrumbs trong website:

  1. Cung cấp dẫn đường rõ ràng: Breadcrumbs cho phép người dùng biết vị trí của họ trong cấu trúc website. Nó hiển thị quá trình điều hướng từ trang chủ đến trang hiện tại, giúp người dùng hiểu rõ hơn về cấu trúc website và không bị lạc trong quá trình duyệt.
  2. Cải thiện trải nghiệm người dùng: Breadcrumbs là một phần quan trọng của giao diện người dùng. Chúng giúp người dùng dễ dàng quay lại các trang trước đó mà không cần sử dụng nút “quay lại” trên trình duyệt. Điều này tạo ra một trải nghiệm dễ dùng và thuận tiện hơn cho người dùng.
  3. Tăng khả năng tìm kiếm và SEO: Breadcrumbs cung cấp một cấu trúc liên kết rõ ràng cho các trang con trong website. Điều này có thể giúp công cụ tìm kiếm hiểu rõ hơn về cấu trúc website của bạn và cải thiện khả năng xếp hạng trang trong kết quả tìm kiếm. Breadcrumbs cũng có thể tăng khả năng tìm kiếm nội bộ trong website của bạn bằng cách tạo ra các liên kết nhanh chóng đến các trang liên quan.
  4. Giúp người dùng khám phá thêm nội dung: Breadcrumbs cung cấp cái nhìn tổng quan về cấu trúc website và cho phép người dùng khám phá các trang liên quan. Người dùng có thể dễ dàng điều hướng đến các trang khác trong cùng danh mục hoặc phân loại nội dung.
Tìm hiểu thêm  Tạo product option với giá và hình ảnh trong wooocomerce sử dụng plugin Variation Swatches for WooCommerce

Tóm lại, breadcrumbs trong website là một yếu tố quan trọng để tăng cường trải nghiệm người dùng, cải thiện khả năng tìm kiếm và giúp người dùng dễ dàng điều hướng trong cấu trúc website wordpress.

Hướng dẫn viết function custom breadcrumbs wordpress flatsome theme

Chèn function sau vào file functions.php của theme

function create_flatsome_custom_breadcrumbs() {
    $delimiter = '<span class="divider">&#47;</span>';
    $home = 'Trang chủ';
    $before = '';
    $after = '';
    if ( !is_home() && !is_front_page() || is_paged() ) {
        echo '<div class="container">';
        echo '<div class="breadcrumbs-wrap">';
        echo '<nav class="breadcrumbs">';
        global $post;
        $homeLink = get_bloginfo('url');
        echo '<a href="' . $homeLink . '">' . $home . '</a> ' . $delimiter . ' ';
        if ( is_category() ) {
            global $wp_query;
            $cat_obj = $wp_query->get_queried_object();

            $thisCat = $cat_obj->term_id;
            $thisCat = get_category($thisCat);
            $parentCat = get_category($thisCat->parent);
            if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
            echo $before . single_cat_title('', false) . $after;
        } 
        elseif( is_tax('featured_item_category') ){
            if ( $items_link = flatsome_option( 'featured_items_page' ) ) {
                echo '<a href="' . esc_url(home_url( $items_link )) . '">Dự án</a> ' ;
            }
            $current_tax = get_queried_object();
        
            $arr_parent = recursive_taxonomy_parent( $current_tax, 'featured_item_category' );
            foreach( $arr_parent as $bred ){
                echo $delimiter . ' '.'<a href="' . $bred['link']  . '">'.  $bred['text'] .'</a> ' ;
            }
                
            echo  $delimiter . ' '. $current_tax->name;


        }
        elseif ( is_day() ) {
            echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
            echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
            echo $before . get_the_time('d') . $after;
        } elseif ( is_month() ) {
            echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
            echo $before . get_the_time('F') . $after;
        } elseif ( is_year() ) {
            echo $before . get_the_time('Y') . $after;
        } elseif ( is_single() && !is_attachment() ) {
            if ( get_post_type() == 'featured_item' ) {
                if ( $items_link = flatsome_option( 'featured_items_page' ) ) {
                    echo '<a href="' . esc_url(home_url( $items_link )) . '">Dự án</a> ' ;
                }
                $post_terms = get_the_terms( get_the_ID() , 'featured_item_category' );
     
                if ( !empty( $post_terms ) ){
                    // get the first term
                    $current_tax = array_shift( $post_terms );
                    $arr_parent = recursive_taxonomy_parent( $current_tax, 'featured_item_category' );
                    foreach( $arr_parent as $bred ){
                        echo $delimiter . ' '.'<a href="' . $bred['link']  . '">'.  $bred['text'] .'</a> ' ;
                    }
                    echo $delimiter . ' '.'<a href="' . get_term_link($current_tax)  . '">'.  $current_tax->name .'</a> ' ;
                }
                echo $delimiter . get_the_title() . $after;
            }
            elseif ( get_post_type() != 'post' &&  get_post_type() != 'featured_item') {
                $post_type = get_post_type_object(get_post_type());
                $slug = $post_type->rewrite;
                echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a> ' . $delimiter . ' ';
                echo $before . get_the_title() . $after;
            } else {
                $cat = get_the_category(); 
                if( count( $cat ) ) 
                    echo get_category_parents($cat[0], TRUE, ' ' . $delimiter . ' ');
                echo $before . get_the_title() . $after;
            }
        } elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
            $post_type = get_post_type_object(get_post_type());
            
            echo $before . $post_type->labels->singular_name . $after;
        } elseif ( is_attachment() ) {
            $parent = get_post($post->post_parent);
            $cat = get_the_category($parent->ID); $cat = $cat[0];
            echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
            echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a> ' . $delimiter . ' ';
            echo $before . get_the_title() . $after;
        } elseif ( is_page() && !$post->post_parent ) {
            echo $before . get_the_title() . $after;
        } elseif ( is_page() && $post->post_parent ) {
            $parent_id = $post->post_parent;
            $breadcrumbs = array();
            while ($parent_id) {
                $page = get_page($parent_id);
                $breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
                $parent_id = $page->post_parent;
            }
            $breadcrumbs = array_reverse($breadcrumbs);
            foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
            echo $before . get_the_title() . $after;
        } elseif ( is_search() ) {
            echo $before . 'Search results for "' . get_search_query() . '"' . $after;
        } elseif ( is_tag() ) {
            echo $before . 'Posts tagged "' . single_tag_title('', false) . '"' . $after;
        } elseif ( is_author() ) {
            global $author;
            echo $before . 'Articles posted by ' . $userdata->display_name . $after;
        } elseif ( is_404() ) {
            echo $before . 'Error 404' . $after;
        }
        if ( get_query_var('paged') ) {
            if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
            echo  $delimiter . ' Trang ' . get_query_var('paged');
            if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
        }
        echo '</nav>';
        echo '</div>';
        echo '</div>';
    }
}