عرض سلام خدمت همراهان گرامی مکانیک وردپرس ؛
نمایش موقعیت کاربر در وردپرس میتواند به افزایش رضایت کاربر و حضور راحت او در وبسایت شما کمک بسیاری کند.
شما میتوانید با استفاده از این تکنیک در سایت، کاربران خود را براحتی از صفحه ایی که در آن حضور دارند، باخبر کنید.
با ما همراه باشید…
نحوه نمایش موقعیت کنونی کاربران در وردپرس
برای نمایش موقعیت کنونی کاربران در وردپرس میتوانید از دو روش استفاده کنید:
- استفاده از افزونه Breadcrumb برای نمایش موقعیت کنونی کاربران در وردپرس
- استفاده از کد برای نمایش موقعیت کنونی کاربران در وردپرس
نمایش موقعیت کنونی کاربران در وردپرس با استفاده از کد
برای این آموزش وردپرس کافیست قطعه کد زیر را داخل فایل functions.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() ) {
// ۴۰۴ page
echo '<a>' . 'یافت نشد' . '</a>';
}
}
}تقریبا تمام است فقط باید بدانید که می خواهید در کدام بخش این امکان را به نمایش بگذارید. معمولا در فایل های page.php یا single.php یا archive.php می توانید قطعه کد کوچک زیر را که از آن به عنوان Shortcode یاد میشود، جهت نمایش موقعیت کنونی در وردپرس قرار داد:
<?php custom_breadcrumbs(); ?>
اکنون میتوانید نتیجه کار خود را مشاهده کنید.
نکته: البته این نکته ناگفته نماند که برای نمایش این بخش به صورت دلخواه شما، باید با استفاده از کد های CSS به آن استایل مورد نظر خود را بدهید.
پیشنهاد: همچنین میتوانید آموزش نمایش موقعیت کنونی کاربران در وردپرس با افزونه Breadcrumb را مطالعه کنید.
موفق و پاینده باشید…





0 پاسخ
Visitor Rating: 5 Stars
Visitor Rating: 5 Stars
Visitor Rating: 5 Stars
Visitor Rating: 5 Stars