WebTutorWordPressКак сделать хлебные крошки

Как сделать хлебные крошки

Хлебные крошки — это нужный и удобный способ навигации на сайте, который подскажет вам, на какой странице сайта вы сейчас находитесь. Пройдя по ним, можно попасть в разные разделы сайта, проследить иерархию, по которой расположены посты.

Добавляем хлебные крошки на сайт

Чтобы добавить на сайт злебные крошки, воспользуйтес примером, приведенным ниже. Добавьте в шаблоне, где должны расположиться хлебные крошки, функцию:

the_breadcrumb();

Код реализации довольно объемный, так как здесь учтены все возможные типы постов и категорий, которые могут быть в WordPress: посты, страницы, вложенные страницы, рубрики и подрубрики, теги, архивы, страница поиска, записи и т.д.

Весь код, приведенный ниже, можно разместить в functions.php или в другой файл, если вы знаете, что он подключен к WordPress.


function the_breadcrumb(){
global $post;
if(!is_home()){ 
   echo '<a href="'.site_url().'">Главная</a> &amp;raquo; ';
	if(is_single()){ // записи
	the_category(', ');
	echo " &amp;raquo; ";
	the_title();
	}
	elseif (is_page()) { // страницы
		if ($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 . ' &amp;raquo; ';
		}
		echo the_title();
	}
	elseif (is_category()) { // категории
		global $wp_query;
		$obj_cat = $wp_query->get_queried_object();
		$current_cat = $obj_cat->term_id;
		$current_cat = get_category($current_cat);
		$parent_cat = get_category($current_cat->parent);
		if ($current_cat->parent != 0) 
			echo(get_category_parents($parent_cat, TRUE, ' &amp;raquo; '));
		single_cat_title();
	}
	elseif (is_search()) { // страницы поиска
		echo 'Результаты поиска для "' . get_search_query() . '"';
	}
	elseif (is_tag()) { // теги (метки)
		echo single_tag_title('', false);
	}
	elseif (is_day()) { // архивы (по дням)
		echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> &amp;raquo; ';
		echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> &amp;raquo; ';
		echo get_the_time('d');
	}
	elseif (is_month()) { // архивы (по месяцам)
		echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> &amp;raquo; ';
		echo get_the_time('F');
	}
	elseif (is_year()) { // архивы (по годам)
		echo get_the_time('Y');
	}
	elseif (is_author()) { // авторы
		global $author;
		$userdata = get_userdata($author);
		echo 'Опубликовал(а) ' . $userdata->display_name;
	} elseif (is_404()) { // если страницы не существует
		echo 'Ошибка 404';
	}
 
	if (get_query_var('paged')) // номер текущей страницы
		echo ' (' . get_query_var('paged').'-я страница)';
 
} else { // главная
   $pageNum=(get_query_var('paged')) ? get_query_var('paged') : 1;
   if($pageNum>1)
      echo '<a href="'.site_url().'">Главная</a> &amp;raquo; '.$pageNum.'-я страница';
   else
      echo 'Вы находитесь на главной странице';
}
}

Просмотров: 41

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *