آموزش ساخت اسپیدبار یا نمایش موقعیت کنونی کاربران در وردپرس
بردکرامب (breadcrumb) یا نمایش موقعیت کنونی کاربران در وردپرس قابلیتی منحصر به فرد است که شما میتوانید با استفاده از کدی که در این نوشته برای شما عزیزان در ماندگار وب آماده کردهایم آنرا به پوسته وردپرس خود اضافه نمایید، به این معنا که شما میتوانید نمایش آدرس برگه کنونی وردپرس را بدون نیاز به نصب پلاگینهای breadcrumb و یا افزونههای مرتبط در قالب خود برای نمایش ایجاد کنید.
ساخت نشانگر صفحات برای وردپرس مزایای مثبتی دارد که بصورت مختصر به آنها اشاره میکنیم:
نمایش موقعیت دسته بندی یا صفحات جاری در وردپرس شما میتواند به موتورهای جستجوگر کمک کند تا سایت شما را بهتر شناسایی کنند و بصورت صحیح نوشتههای شما را دستهبندی کنند که تاثیر بسیار مفیدی در سئو سایت وردپرسی و بهینه سازی آن دارد.
اضافه کردن نمایش موقعیت کنونی کاربران در صفحات وردپرس باعث میشود که کاربر همواره بداند در کدام نوشته و یا دستهبندی از موضوعات سایت قرار دارد که باعث میشود علاوه بر عدم سرگردانی مسیر اصلی خود را به سادگی پیدا کند، همچنین برای رفتن به سایر دستهبندیها از طریق اسپیدبار زمان بیشتری را در سایت شما سپری میکند و ترافیک بیشتری ایجاد میشود.
پیش از این هم افزونهها و کدهای زیادی برای breadcrumb در سایت های گوناگون معرفی شده بود که کدی که امروز برای شما آماده کردهایم بصورت کامل بوده و به راحتی میتوانید نمایش آدرس صفحهی کنونی که کاربر در آن حاضر است را به پوسته وردپرس خود اضافه نمایید.
ابتدا میبایست کد زیر را به فایل functions.php موجود در ریشه پوسته خود اضافه نمایید لطفا پیش از ایجاد هر تغییری در این فایل از آن نسخه پشتیبان تهیه نمایید تا در صورت بروز خطا آن را به حالت اول بازگردانید:
function dimox_breadcrumbs() {
$delimiter = '»';
$home = 'خانه'; // text for the 'Home' link
$before = '<span>'; // tag before the current crumb
$after = '</span>'; // tag after the current crumb
if ( !is_home() && !is_front_page() || is_paged() ) {
echo '
<div id="crumbs">';
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_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() != 'post' ) {
$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(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo $before . get_the_title() . $after;
}
} elseif ( !is_single() && !is_page() && get_post_type() != 'post' ) {
$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 . 'نتایج جستجو برای "' . get_search_query() . '"' . $after;
} elseif ( is_tag() ) {
echo $before . 'برچسبهای نوشتهها "' . single_tag_title('', false) . '"' . $after;
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $before . 'Articles posted by ' . $userdata->display_name . $after;
} elseif ( is_404() ) {
echo $before . 'هشدار 404' . $after;
}
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo __('برگه') . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}
echo '</div>
';
}
}
تا به این مرحله قابلیت نمایش موقعیت کنونی کاربران به وردپرس شما اضافه شد حالا شما باید دستور زیر را برای نمایش اسپیدبار در ناحیهای از پوسته که مورد پسندتان هست قرار دهید:
<?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?>
شاد و پیروز باشید.
منبع : ماندگار وب
مطالب زیر را حتما بخوانید:
قوانین ارسال دیدگاه در سایت
- چنانچه دیدگاهی توهین آمیز باشد و متوجه اشخاص مدیر، نویسندگان و سایر کاربران باشد تایید نخواهد شد.
- چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
- چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
- چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
- چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.
نظرات کاربران