Seo-Бизнес блог Progress-project

Все о создании, продвижении сайтов и заработке в интернете

Обновлённый дизайн блога Progress-project
logotip «Progress-project»
logotip «Progress-project»

Усовершенствованные хлебные крошки с элементами микроразметки

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

И сегодня я решил, что-бы слишком далеко не отходить от данной темы, рассказать вам об ещё одном так сказать усовершенствованном способе вывода хлебных крошек на вашем блоге так-же без использования плагинов.

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

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

И вот блуждая по блогам и форумам в поисках различных решений проблем связанных с микро разметкой блога.

Однажды я наткнулся на интересную статью где шла речь именно об хлебных крошках с элементами микро разметки.

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

Конечно данный способ не сможет разметить вам абсолютно весь блог, для этого нужно будет ещё очень и очень потрудиться, но по крайней мере уже кое-что будет сделано.

Благодаря нашим усовершенствованным хлебным крошкам с элементами микро разметки, которые в свою очередь способны передавать микро-данные поисковому роботу на RDF языке, хлебные крошки появятся в сниппите поисковых результатов.

То-есть если говорить простыми словами, вместо простой ссылки в поисковой выдачи Google, под заголовком вашей статьи будут отображаться хлебные крошки.
Если вам это не принципиально то можно вполне обойтись хлебными крошками рассмотренными в прошлой статье.

На верняка вы спросите и почему-же я сразу не рассказал вам об хлебных крошках содержащих микро разметку? А с начала написал о том, как просто вывести хлебные крошки на блоге без плагина?

И этому есть свои причины.

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

Сделав вывод из всего выше сказанного я решил всё-же описать оба варианта установки хлебных крошек на WordPress с микро разметкой и без, что-бы дать вам возможность выбора каким именно способом воспользоваться, ещё раз замечу, что на этом блоге оба варианта работают вполне корректно, но я всё же остановился на способе который опишу ниже.

Усовершенствованные хлебные крошки

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

Если у вас уже установлены хлебные крошки предложенные в прошлой статье необходимо их убрать.

Далее находим среди файлов темы вашего блога и открываем для редактирования файл functions.php лучше в программе Notepad++ и предварительно сделав его резервную копию. Дальше в самый низ перед таким знаком: ?> вставляем функцию:

Открыть!
/*** Функция хлебных крошек ***/
function progress_breadcrumbs_new() {
$progress_home = 'Главная'; // текст ссылки "Главная"
$progress_last_crumb = 1; // 1 - показывать название текущей статьи/страницы/рубрики, 0 - не показывать
$progress_between = ' » ';
$progress_from = '<span class="current-crumbs">';
$progress_to = '</span>';
global $post;
$progress_link_to_home = home_url('/');
$progress_from_court = '<span typeof="v:Breadcrumb">';
$progress_to_court = '</span>';
$progress_link_rdf = ' rel="v:url" property="v:title"';
$progress_path = $progress_from_court . '<a' . $progress_link_rdf . ' href="%1$s">%2$s</a>' . $progress_to_court;
$progress_superior = $descendant = $post->post_parent;
$progress_initial_page = get_option('page_on_front');
if (is_home() || is_front_page()) {
echo '<div class="block-crumbs"><a href="'. $progress_link_to_home.'">' . $progress_home . '</a></div>';
} else {
echo '<div class="block-crumbs" xmlns:v="https://rdf.data-vocabulary.org/#">';
{
echo '<a href="'. $progress_link_to_home.'" rel="v:url" property="v:title">' . $progress_home . '</a>';
if ($progress_initial_page == 0 || $progress_superior != $progress_initial_page) echo $progress_between;
}
if ( is_category() ) {
$this_category = get_category(get_query_var('cat'), false);
if ($this_category->parent != 0) {
$category = get_category_parents($this_category->parent, TRUE, ' ' . $progress_between. ' ');
if ($progress_last_crumb == 1) $category = preg_replace("#^(.+)$progress_between$#", "$1", $category);
$category = str_replace('<a', $progress_from_court . '<a' . $progress_link_rdf, $category);
$category = str_replace('</a>', '</a>' . $progress_to_court, $category);
echo $category;
}
if ($progress_last_crumb == 1) echo $progress_from. sprintf(' Категория "' . single_cat_title('', false) . '"') .$progress_to;
} elseif ( is_search() ) {
echo $progress_from. sprintf('Результаты поиска для "' . get_search_query() . '"') .$progress_to;
} elseif ( is_day() ) {
echo sprintf($progress_path, get_year_link(get_the_time('Y')), get_the_time('Y')) .$progress_between;
echo sprintf($progress_path, get_month_link(get_the_time('Y'),get_the_time('m')), get_the_time('F')) .$progress_between;
echo $progress_from. get_the_time('d') .$progress_to;
} elseif ( is_month() ) {
echo sprintf($progress_path, get_year_link(get_the_time('Y')), get_the_time('Y')) .$progress_between;
echo $progress_from. get_the_time('F') .$progress_to;
} elseif ( is_year() ) {
echo $progress_from. get_the_time('Y') .$progress_to;
} elseif ( is_single() && !is_attachment() ) {
if ( get_post_type() != 'post' ) {
$post_specimen = get_post_type_object(get_post_type());
$sleaze = $post_specimen->rewrite;
printf($progress_path, $progress_link_to_home . '/' . $sleaze['sleaze'] . '/', $post_specimen->labels->singular_name);
if ($progress_last_crumb == 1) echo $progress_between . progress_from . get_the_title() . $progress_to;
} else {
$cat = get_the_category(); $cat = $cat[0];
$category = get_category_parents($cat, TRUE, ' ' . $progress_between . ' ');
if ($progress_last_crumb == 0) $category = preg_replace("#^(.+)$progress_between$#", "$1", $category);
$category = str_replace('<a', $progress_from_court . '<a' . $progress_link_rdf, $category);
$category = str_replace('</a>', '</a>' . $progress_to_court, $category);
echo $category;
if ($progress_last_crumb == 1) echo $progress_from. get_the_title() . $progress_to;
}
} elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
$post_specimen = get_post_type_object(get_post_type());
echo $progress_from. $post_specimen->labels->singular_name . $progress_to;
} elseif ( is_attachment() ) {
$superior = get_post($progress_superior);
$cat = get_the_category($superior->ID); $cat = $cat[0];
if ($cat) {
$category = get_category_parents($cat, TRUE, ' ' . $progress_between . ' ');
$category = str_replace('<a', $progress_from_court . '<a' . $progress_link_rdf, $category);
$category = str_replace('</a>', '</a>' . $progress_to_court, $category);
echo $category;
}
printf($progress_path, get_permalink($superior), $superior->post_title);
if ($progress_last_crumb == 1) echo $progress_between . $progress_from . get_the_title() . $progress_to;
} elseif ( is_page() && !$progress_superior ) {
if ($progress_last_crumb == 1) echo $progress_from . get_the_title() . $progress_to;
} elseif ( is_page() && $progress_superior ) {
if ($progress_superior != $progress_initial_page) {
$breadcrumbs = array();
while ($progress_superior) {
$page = get_page($progress_superior);
if ($progress_superior != $progress_initial_page) {
$breadcrumbs[] = sprintf($progress_path, get_permalink($page->ID), get_the_title($page->ID));
}
$progress_superior = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
for ($i = 0; $i < count($breadcrumbs); $i++) {
echo $breadcrumbs[$i];
if ($i != count($breadcrumbs)-1) echo $progress_between;
}
}
if ($progress_last_crumb == 1) {
if ($descendant != 0 && $descendant != $progress_initial_page) echo $progress_between;
echo $progress_from. get_the_title() .$progress_to;
}
} elseif ( is_tag() ) {
echo $progress_from. sprintf('Записи с меткой "%s"', single_tag_title('', false)) . $progress_to;
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $progress_from. sprintf('Записи автора за %s', $userdata->display_name) . $progress_to;
} elseif ( is_404() ) {
echo $progress_from. 'Ошибка 404' . $progress_to;
} elseif ( has_post_format() && !is_singular() ) {
echo get_post_format_string(get_post_format() );
}
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>';
}
}
/*** Конец функции хлебных крошек ***/

Теперь нам необходимо сохранить внесённые изменения.

Вызываем хлебные крошки с помощью специального кода

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

(single.php) записи
(page.php) страницы
(archve.php) архивы
(category.php) рубрики
(tag.php) метки
(search.php) страница поиска
(author.php) страница автора
(404.php) ошибка 404.

Далее в открытых файлах находим такую или похожую на неё строку:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Впереди которой вставляем код который и будит вызывать функцию наших хлебных крошек:

<?php progress_breadcrumbs_new(); ?>

Вставить данный код нужно во все файлы имеющиеся в вашей теме из списка приведённого мной выше.

Задаём необходимый внешний вид хлебным крошкам

В самой функции хлебных крошек уже прописано 2 класса из которых первый: «block-crumbs» у нас будет нести ответственность за весь блок в целом и второй класс: «current-crumbs» только за последнюю строку в хлебных крошках которая будет не кликабельна.

И так в самом низу файла темы style.css вставляем предложенные ниже стили:

/*** Стили для хлебных крошек ***/
 .block-crumbs{
 margin: 5px 25px; /* Внешние отступы от блока */
 padding-bottom:5px; /* Нижний внутренний отступ от блока */
 border-bottom:2px solid #f2f2f2; /* Черта под блоком */
 color:#215B9B; /* Цвет ссылок и текста в блоке */
 }
 .block-crumb a:hover,.block-crumb a:active {
 color:#C6C600; /* Цвет ссылок при наведении и активном состоянии */
 }
 .current-crumbs{
 color:#000; /* Цвет текста для последней крошки */
 }

Сохраняем и проверяем работоспособность при необходимости корректируем.

Проверка работоспособности хлебных крошек

Проверяем работоспособность с помощью инструментов позволяющих сделать полную проверку структурированных данных от Google.

Я взял для примера статью: «WebMoney Keeper Classic — как пользоваться программой, где скачать, как создать кошелёк».

Далее, переходим по ссылке.

На открывшейся странице, нажимаем по ссылке «Получить данные по URL», дальше указываем ссылку на любую статью вашего блога и жмём на кнопку проверить.

После чего получаем результат проверки.

До внедрения функции он был гораздо хуже.

На этом сегодняшняя статья, об усовершенствованных хлебных крошках содержащих элементы микро разметки на WordPress без плагина подошла к концу. Надеюсь, что этот вариант подойдёт для вашего блога, что поможет вам конечно не разметить весь блог но хотя-бы избавиться от определённых ошибок или полного отсутствия микро разметки.
Желаю удачи, подписывайтесь на обновление, ставьти лайки и до новых встреч!

С уважением, автор блога!
© progress-project
★Обновлено:2016-05-20

Введите свой e-mail:

Вы можете поделиться статьёй в социальных сетях:

Комментарии к статье

2 комментарияна “Усовершенствованные хлебные крошки с элементами микроразметки”
  1. Александр:

    Спасибо за подробную инструкцию, всё работает!

    Ответить
    • Administrator:

      Здравствуйте Александр!
      Очень рад, что статья вам была полезна.
      Мы и дальше будем продолжать рассматривать, различные технические решения, связанные с создании проектов на CMS WordPress. По своему опыту знаю, что в сети не так уж и много действительно полезной информации. Поэтому на страницах: abrek-ad-abra.ru, я стараюсь описывать только, лично проверенные и реально рабочие способы.

      Ответить

Ваш комментарий

Внимание! Перед тем, как вставить в комментарий: html, php либо JavaScript, преобразуйте его в HTML сущность!

» Подписаться на комментарии по RSS
Поиск по блогу

Введите свой e-mail:

ВКонтакте Google+ Facebook RSS-лента сайта abrek-ad-abra.ru

Топ комментаторов

Виктор(6)
seoonly(4)
Николай(3)
Олег(3)
Иван(3)

© 2015-2017

SEO-Бизнес блог «Progress-project».

Все материалы, опубликованные на сайте: принадлежат автору и охраняются в соответствии с законодательством РФ.

При использовании материалов сайта гиперссылка на обязательна!



seo-блог