کد نمایش موقعیت کنونی کاربران در وردپرس
با عرض سلام خدمت شما همراهان مِستر آموز
نمایش موقعبت کاربر در وردپرس می تواند به افزایش رضایت کاربر و حضور راحت او در وب سایت کمک زیادی کند. شما می توانید با استفاده از این تکنیک در وبسایت، کاربران خود را براحتی از صفحه ایی که در آن هستند را مطلع کنید.
نحوه نمایش موقعیت کنونی کاربران در وردپرس
برای نمایش موقعیت کنونی کاربران در وردپرس می توانید از دو روش استفاده کیند.
- استفاده از افزونه Breadcrumb
- استفاده از کد در زیر همین صفحه
نمایش موقعیت کنونی کاربران در وردپرس با استفاده از کد
برای این کار کافیست قطعه کد زیر را داخل فایل function.php قالب وردپرس خود قرار دهید.
توجه: همیشه قبل از ایجاد هر گونه تغییر در فایل های مهم سایت از آن ها یک نسخه پشتیبان تهیه کنید.
// Breadcrumbs function custom_breadcrumbs() { // Settings $separator = '>'; $breadcrums_id = 'breadcrumbs'; $breadcrums_class = 'breadcrumbs'; $home_title = 'Homepage'; // If you have any custom post types with custom taxonomies, put the taxonomy name below (e.g. product_cat) $custom_taxonomy = 'product_cat'; // Get the query & post information global $post,$wp_query; // Do not display on the homepage if ( !is_front_page() ) { // Build the breadcrums // Home page echo '<a class="bread-link bread-home" href="' . get_home_url() . '" title="' . $home_title . '"><div class="icohom fa fa-home" aria-hidden="true"></div></a>'; echo '<i></i>'; if ( is_archive() && !is_tax() && !is_category() && !is_tag() ) { echo '<li class="item-current item-archive"><strong class="bread-current bread-archive">' . post_type_archive_title($prefix, false) . '</strong></li>'; } else if ( is_archive() && is_tax() && !is_category() && !is_tag() ) { // If post is a custom post type $post_type = get_post_type(); // If it is a custom post type display name and link if($post_type != 'post') { $post_type_object = get_post_type_object($post_type); $post_type_archive = get_post_type_archive_link($post_type); echo '<a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' . $post_type_archive . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a>'; echo '<i></i>'; } $custom_tax_name = get_queried_object()->name; echo '<a class="item-current item-archive"><strong class="bread-current bread-archive">' . $custom_tax_name . '</strong></li>'; } else if ( is_single() ) { // If post is a custom post type $post_type = get_post_type(); // If it is a custom post type display name and link if($post_type != 'post') { $post_type_object = get_post_type_object($post_type); $post_type_archive = get_post_type_archive_link($post_type); echo '<a class="bread-cat bread-custom-post-type-' . $post_type . '" href="' . $post_type_archive . '" title="' . $post_type_object->labels->name . '">' . $post_type_object->labels->name . '</a>'; echo '<i></i>'; } // Get post category info $category = get_the_category(); if(!empty($category)) { // Get last category post is in $last_category = end(array_values($category)); // Get parent any categories and create array $get_cat_parents = rtrim(get_category_parents($last_category->term_id, true, ','),','); $cat_parents = explode(',',$get_cat_parents); // Loop through parent categories and store in variable $cat_display $cat_display = ''; foreach($cat_parents as $parents) { $cat_display .= '<a>'.$parents.'</a>'; $cat_display .= '<i></i>'; } } // If it's a custom post type within a custom taxonomy $taxonomy_exists = taxonomy_exists($custom_taxonomy); if(empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) { $taxonomy_terms = get_the_terms( $post->ID, $custom_taxonomy ); $cat_id = $taxonomy_terms[0]->term_id; $cat_nicename = $taxonomy_terms[0]->slug; $cat_link = get_term_link($taxonomy_terms[0]->term_id, $custom_taxonomy); $cat_name = $taxonomy_terms[0]->name; } // Check if the post is in a category if(!empty($last_category)) { echo $cat_display; echo '<a class="item-current item-' . $post->ID . '"><strong class="bread-current bread-' . $post->ID . '" title="' . get_the_title() . '">' . get_the_title() . '</strong></a>'; // Else if post is in a custom taxonomy } else if(!empty($cat_id)) { echo '<a class="bread-cat bread-cat-' . $cat_id . ' bread-cat-' . $cat_nicename . '" href="' . $cat_link . '" title="' . $cat_name . '">' . $cat_name . '</a>'; echo '<i></i>'; echo '<a class="item-current item-' . $post->ID . '"><strong class="bread-current bread-' . $post->ID . '" title="' . get_the_title() . '">' . get_the_title() . '</strong></a>'; } else { echo '<a class="item-current item-' . $post->ID . '"><strong class="bread-current bread-' . $post->ID . '" title="' . get_the_title() . '">' . get_the_title() . '</strong></a>'; } } else if ( is_category() ) { // Category page echo '<a class="item-current item-cat"><strong class="bread-current bread-cat">' . single_cat_title('', false) . '</strong></a>'; } else if ( is_page() ) { // Standard page if( $post->post_parent ){ // If child page, get parents $anc = get_post_ancestors( $post->ID ); // Get parents in the right order $anc = array_reverse($anc); // Parent page loop if ( !isset( $parents ) ) $parents = null; foreach ( $anc as $ancestor ) { $parents .= '<a class="bread-parent bread-parent-' . $ancestor . '" href="' . get_permalink($ancestor) . '" title="' . get_the_title($ancestor) . '">' . get_the_title($ancestor) . '</a>'; $parents .= '<i></i>'; } // Display parent pages echo $parents; // Current page echo '<a class="item-current item-' . $post->ID . '"><strong title="' . get_the_title() . '"> ' . get_the_title() . '</strong></a>'; } else { // Just display current page if not parents echo '<a class="item-current item-' . $post->ID . '"><strong class="bread-current bread-' . $post->ID . '"> ' . get_the_title() . '</strong></a>'; } } else if ( is_tag() ) { // Tag page // Get tag information $term_id = get_query_var('tag_id'); $taxonomy = 'post_tag'; $args = 'include=' . $term_id; $terms = get_terms( $taxonomy, $args ); $get_term_id = $terms[0]->term_id; $get_term_slug = $terms[0]->slug; $get_term_name = $terms[0]->name; // Display the tag name echo '<a class="item-current item-tag-' . $get_term_id . ' item-tag-' . $get_term_slug . '"><strong class="bread-current bread-tag-' . $get_term_id . ' bread-tag-' . $get_term_slug . '">' . $get_term_name . '</strong></a>'; } elseif ( is_day() ) { // Day archive // Year link echo '<a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ' Archives</a>'; echo '<i></i>'; // Month link echo '<a class="bread-month bread-month-' . get_the_time('m') . '" href="' . get_month_link( get_the_time('Y'), get_the_time('m') ) . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ' Archives</a>'; echo '<i></i>'; // Day display echo '<a class="item-current item-' . get_the_time('j') . '"><strong class="bread-current bread-' . get_the_time('j') . '"> ' . get_the_time('jS') . ' ' . get_the_time('M') . ' Archives</strong></a>'; } else if ( is_month() ) { // Month Archive // Year link echo '<a class="bread-year bread-year-' . get_the_time('Y') . '" href="' . get_year_link( get_the_time('Y') ) . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ' Archives</a>'; echo '<i></i>'; // Month display echo '<a class="item-month item-month-' . get_the_time('m') . '"><strong class="bread-month bread-month-' . get_the_time('m') . '" title="' . get_the_time('M') . '">' . get_the_time('M') . ' Archives</strong></a>'; } else if ( is_year() ) { // Display year archive echo '<a class="item-current item-current-' . get_the_time('Y') . '"><strong class="bread-current bread-current-' . get_the_time('Y') . '" title="' . get_the_time('Y') . '">' . get_the_time('Y') . ' Archives</strong></a>'; } else if ( is_author() ) { // Auhor archive // Get the author information global $author; $userdata = get_userdata( $author ); // Display author name echo '<a class="item-current item-current-' . $userdata->user_nicename . '"><strong class="bread-current bread-current-' . $userdata->user_nicename . '" title="' . $userdata->display_name . '">' . 'Author: ' . $userdata->display_name . '</strong></a>'; } else if ( get_query_var('paged') ) { // Paginated archives echo '<a class="item-current item-current-' . get_query_var('paged') . '"><strong class="bread-current bread-current-' . get_query_var('paged') . '" title="Page ' . get_query_var('paged') . '">'.__('Page') . ' ' . get_query_var('paged') . '</strong></a>'; } else if ( is_search() ) { // Search results page echo '<a class="item-current item-current-' . get_search_query() . '"><strong class="bread-current bread-current-' . get_search_query() . '" title="کلمه جستجو شده ' . get_search_query() . '">کلمه جستجو شده : ' . get_search_query() . '</strong></a>'; } elseif ( is_404() ) { // 404 page echo '<a>' . 'یافت نشد' . '</a>'; } } }
حالا فقط کافیست در بخشی که میخواهید این امکان به نمایش دربیاد که معمولا در فایل های page.php یا single.php می توانید قطعه کد کوچک زیر را جهت نمایش موقعیت کنونی در وردپرس قرار داد:
<?php custom_breadcrumbs(); ?>
نکته:
برای نمایش این بخش به صورت دلخواه شما باید با استفاده از کدهای CSS به آن استایل مورد نظر خود را بدهید.
موفق و پیروز باشید.