مسیر کاربر در وردپرس باعث بهبود تجربه کاربری می شود.
مسیر راهنما ( Breadcrumbs ) یک روش کارآمد برای ارائه گزینه های مفید جهت یابی وب سایت هستند و برای سئو سایت بسیار سودمند هستند.
breadcrumbs ریز آدرس هایی هستن که در وب سایت ها برای راهنمایی بیشتر کاربران و موتور های جستجو به کار میرود. breadcrumb یک مسیر متن کوچک است، که در بیشتر مواقع در قسمت بالای صفحه قرار دارد.
ریز آدرس ها یا breadcrumb هم چنین در گوگل هم نمایش داده می شوند. اگر از Yoast SEO استفاده می کنید موتورهای جستجو می توانند این اطلاعات را بیابند و این ریز آدرس ها را در نتایج جستجوهای خود نمایش دهند
ولی ما امروز در آراز ورد پرس روش دستی انجام این کار رو به شما یا خواهیم داد با آراز وردپرس همراه شوید تا روش انجام این کار رو به شما یاد بدیم
اولین قدم کد های زیر را آخر فایل functions.php کپی کنید
<?php
function get_hansel_and_gretel_breadcrumbs() {
$here_text = __( '<span><a href="/">خانه</a></span>' );
$link_before = '<span>';
$link_after = '</span>';
$link_attr = ' rel="v:url" property="v:title"';
$link = $link_before . '<a' . $link_attr . ' href="%1$s">%2$s</a>' . $link_after;
$delimiter = ' ';
$before = '<span class="current">';
$after = '</span>';
$page_addon = '';
$breadcrumb_trail = '';
$category_links = '';
$wp_the_query = $GLOBALS[ 'wp_the_query' ];
$queried_object = $wp_the_query->get_queried_object();
if ( is_singular() ) {
$post_object = sanitize_post( $queried_object );
$title = apply_filters( 'the_title', $post_object->post_title );
$parent = $post_object->post_parent;
$post_type = $post_object->post_type;
$post_id = $post_object->ID;
$post_link = $before . $title . $after;
$parent_string = '';
$post_type_link = '';
if ( 'post' === $post_type ) {
$categories = get_the_category( $post_id );
if ( $categories ) {
$category = $categories[ 0 ];
$category_links = get_category_parents( $category, true, $delimiter );
$category_links = str_replace( '<a', $link_before . '<a' . $link_attr, $category_links );
$category_links = str_replace( '</a>', '</a>' . $link_after, $category_links );
}
}
if ( !in_array( $post_type, [ 'post', 'page', 'attachment' ] ) ) {
$post_type_object = get_post_type_object( $post_type );
$archive_link = esc_url( get_post_type_archive_link( $post_type ) );
$post_type_link = sprintf( $link, $archive_link, $post_type_object->labels->singular_name );
}
if ( 0 !== $parent ) {
$parent_links = [];
while ( $parent ) {
$post_parent = get_post( $parent );
$parent_links[] = sprintf( $link, esc_url( get_permalink( $post_parent->ID ) ), get_the_title( $post_parent->ID ) );
$parent = $post_parent->post_parent;
}
$parent_links = array_reverse( $parent_links );
$parent_string = implode( $delimiter, $parent_links );
}
if ( $parent_string ) {
$breadcrumb_trail = $parent_string . $delimiter . $post_link;
} else {
$breadcrumb_trail = $post_link;
}
if ( $post_type_link )$breadcrumb_trail = $post_type_link . $delimiter . $breadcrumb_trail;
if ( $category_links )$breadcrumb_trail = $category_links . $breadcrumb_trail;
}
if ( is_archive() ) {
if ( is_category() || is_tag() || is_tax() ) {
$term_object = get_term( $queried_object );
$taxonomy = $term_object->taxonomy;
$term_id = $term_object->term_id;
$term_name = $term_object->name;
$term_parent = $term_object->parent;
$taxonomy_object = get_taxonomy( $taxonomy );
$current_term_link = $before . $term_name . $after;
$parent_term_string = '';
if ( 0 !== $term_parent ) {
$parent_term_links = [];
while ( $term_parent ) {
$term = get_term( $term_parent, $taxonomy );
$parent_term_links[] = sprintf( $link, esc_url( get_term_link( $term ) ), $term->name );
$term_parent = $term->parent;
}
$parent_term_links = array_reverse( $parent_term_links );
$parent_term_string = implode( $delimiter, $parent_term_links );
}
if ( $parent_term_string ) {
$breadcrumb_trail = $parent_term_string . $delimiter . $current_term_link;
} else {
$breadcrumb_trail = $current_term_link;
}
} elseif ( is_author() ) {
$breadcrumb_trail = __( 'Author archive for' ) . $before . $queried_object->data->display_name . $after;
} elseif ( is_date() ) {
$year = $wp_the_query->query_vars[ 'year' ];
$monthnum = $wp_the_query->query_vars[ 'monthnum' ];
$day = $wp_the_query->query_vars[ 'day' ];
if ( $monthnum ) {
$date_time = DateTime::createFromFormat( '!m', $monthnum );
$month_name = $date_time->format( 'F' );
}
if ( is_year() ) {
$breadcrumb_trail = $before . $year . $after;
} elseif ( is_month() ) {
$year_link = sprintf( $link, esc_url( get_year_link( $year ) ), $year );
$breadcrumb_trail = $year_link . $delimiter . $before . $month_name . $after;
} elseif ( is_day() ) {
$year_link = sprintf( $link, esc_url( get_year_link( $year ) ), $year );
$month_link = sprintf( $link, esc_url( get_month_link( $year, $monthnum ) ), $month_name );
$breadcrumb_trail = $year_link . $delimiter . $month_link . $delimiter . $before . $day . $after;
}
} elseif ( is_post_type_archive() ) {
$post_type = $wp_the_query->query_vars[ 'post_type' ];
$post_type_object = get_post_type_object( $post_type );
$breadcrumb_trail = $before . $post_type_object->labels->singular_name . $after;
}
}
if ( is_search() ) {
$breadcrumb_trail = __( '<p>عبارت جستجوی شما</p>' ) . $before . get_search_query() . $after;
}
if ( is_404() ) {
$breadcrumb_trail = $before . __( '<p>صفحه مورد نظر شما وجود ندارد</p><span class="erross404">Error 404</span>' ) . $after;
}
if ( is_paged() ) {
$current_page = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : get_query_var( 'page' );
$page_addon = $before . sprintf( __( ' ( Page %s )' ), number_format_i18n( $current_page ) ) . $after;
}
$breadcrumb_output_link = '';
$breadcrumb_output_link .= '<div id="breadcrumb">';
if ( is_home() || is_front_page() ) {
if ( is_paged() ) {
$breadcrumb_output_link .= $here_text . $delimiter;
$breadcrumb_output_link .= '<a href="' . $home_link . '">' . $home_text . '</a>';
$breadcrumb_output_link .= $page_addon;
}
} else {
$breadcrumb_output_link .= $here_text . $delimiter;
$breadcrumb_output_link .= $delimiter;
$breadcrumb_output_link .= $breadcrumb_trail;
$breadcrumb_output_link .= $page_addon;
}
$breadcrumb_output_link .= '</div>';
return $breadcrumb_output_link;
} ?>
برای نمایش در هر قسمتی که دلتون می خواد از قطعه کد زیر استفاده کنید
<?php echo get_hansel_and_gretel_breadcrumbs(); ?>