Создаем хлебные крошки на wordpress без плагина
В этой статье речь пойдет о таком элементе в навигации сайта, как «хлебные крошки». Я расскажу вам что это такое и как реализовать работу этого блока без использования сторонних плагинов для wordpress. Да, гораздо проще установить плагин для CMS и сразу получить готовый результат, но делать это крайне не рекомендуется. и вот почему: каждое установленное расширение нагружает и без того неповоротливую систему. Множество каскадных запросов для реализации простого алгоритма совершенно не оправдывает затраты ресурсов.Если же написать совсем не много кода на php, то можно получить ту же навигацию, но при этом она не будет нагружать процессор и память на сервере. Приступим.
Определение и история появления
Если кто-то все еще не понимает, что такое хлебные крошки, то напишу определение.
Вот, как это выглядит:
Далее можно привести маленький рассказ о том, почему данный элемент называется именно так, а не иначе. Некоторые из вас, наверняка, помнят немецкую сказку братьев Гримм про Гензель и Гретель, которых пытались завести в лес и бросить, чтобы они не нашли дороги назад. Так вот, именно хлебные крошки, которые они бросали по пути в лес, должны были привести их домой. Эта история привлекла внимание оптимизаторов и они позаимствовали идею.
Инструкция по созданию
Теперь приступим к написанию кода. так как весь wordpress написан на php, то, логично, что и мы будем дописывать его функционал именно на этом языке. Если вы не знакомы с основами PHP, то категорически рекомендую ознакомиться с моими уроками. Но, в рамках данной статьи это не критично, так как все, что нужно, я дам прямо сейчас.
Первое, что нужно сделать, это создать файл breadcrumbs.php, задать ему кодировку UTF-8 и записать в него следующее:
<div id="breadcrumbs"> <?php if (is_home()) { ?> <?php } elseif (is_single()) { ?> <a href="<?php echo get_option('home'); ?>">Главная</a> » <?php foreach((get_the_category()) as $cat) { $cat=$cat->cat_ID; echo(get_category_parents($cat, TRUE, ' » ')); } the_title(); ?> <?php } ?> </div>
Второе, помещаем созданный файл в папку wp-content/themes/название_темы/. Теперь у нас есть практически все, что нужно и осталось совсем немного.
Третье, заходим в консоль администратора Внешний вид — Редактор — Одна запись(single.php). И в нужное место, например, перед статьей, дописываем строку:
<?php include (TEMPLATEPATH. '/breadcrumbs.php'); ?>
У меня она идет сразу после строки:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
В принципе, этого достаточно, чтобы у вас появилась дополнительная навигация, примерно как на этом сайте. Но выглядеть она будет по-другому, поэтому следующим шагом станет редактирование стиля.
Настройка визуального оформления
Идем в админку сайта и открываем страницу: Внешний вид — Редактор — Список стилей(style.css), где добавляем в конец файла следующее:
#breadcrumbs { border-bottom:1px solid #eee; font-size:15px; color:#777; padding:10px 20px; }
Это оформит только сам блок, но не коснется оформления ссылок внутри него. Если потребуется оформить и их, то вы всегда сможете это сделать самостоятельно. Тем, кто не сталкивался с редактированием HTML и CSS рекомендую почитать мои уроки.
Еще примеры оформления хлебных крошек на сайтах Интернет-магазинов:
Здесь последним элементом в цепочке является раздел товаров.
А тут последний элемент, как и в моем случае, это название текущей страницы.
Между этими двумя вариантами выбирать вам. Если разделов много и цепочка итак слишком длинная, то последний элемент (название страницы) вполне можно не выводить.
Вот и все, что касается хлебных крошек. теперь вы с легкостью сможете добавить этот раздел навигации на любой сайт, который работает с WordPress.
Комментарии:
У вас стоит уже?
Не совсем понял вопроса, но если речь о хлебных крошках, то да, они у меня есть. Взгляните в начало статьи :)
Круто, эти крошки реально упрощают перемещение по сайту. А за ролик спасибо, я такого не видел, долго смеялся и в офисе всем показывал ))
а почему модуль не использовать? тоже самое делает…
Сергей, модули это конечно хорошо, но они нагружают сервер. Каждый понемногу, а если сложить все, то получится уже приличная нагрузка. Возможно это скажется не сразу, но через какое-то время точно всплывет.
Очень хорош ои удобно все расписано, а главное понятно.
P.S. Ролик очень смешной,долго смеялся :D
оч помогло,спасибо))
и видео прикольное))
спасибо )
а видео классное )
спасибо большое, есть один вопрос, а как добавить крошки и на страницы сайта? какие строчки дописать в файл breadcrumbs?
Артем, привет. Сам файл breadcrumbs изменять не нужно. Для добавления на страницы требуется следующее:
Заходим в консоль администратора Внешний вид — Редактор — Одна запись (single.php).
Дописываем сюда строку:
У меня она идет сразу после строки:
ну и естественно файл breadcrumbs.php закидываем в папку с темой. Если еще какие-то вопросы- спрашивайте! =)
Удачи.
Благодарю за прекрасную инструкцию по «хлебным крошкам».
Но есть такая ситуация.
В меню у меня стоят статические страницы (к примеру): Экскурсии — Развлечения — Новости.
Каждая страница имеет по два вложения, т.е. наведя указатель на «Экскурсии», появятся два подпункта — «Экускурсии по России» и «Экскурсии по Украине». Но эти два подпункта и все последующие относятся к категориям (или рубрикам).
Открыв статью из подрубрики «Экскурсии по России» в «хлебных крошках» должно отображаться:
«Главная >> Экскурсии >> Экскурсии по России >> Статья»
Но отображается:
«Главная >> Экскурсии по России >> Статья»
Т.е. выпала из «крошек» статическая страница. И это правильно, т.к. она не прописана в коде «крошек»
Меня интересует, как можно реализовать «крошки» в данной ситуации, когда в пути присутствуют и страницы и рубрики?
Честно, не знаю. Не думал над этим.
Отличная статья! Протестировала несколько вариантов. Ваш понравился больше всех! Спасибо :)
Не за что :) Рад, что вам пригодились мои заметки)
спасибо, поставил себе на сайт …..
Спасибо! Вы очень помогли
Почему-то не работают стили. Но это не принципиально. Проблема в другом.
Есть 2 сайта на вордпресс. Оба в одном шаблоне. На одном из них все нормально, кроме стилей. А на другом отображается только категория. Ни главной нет, ни названия страницы в крошках нет. И устанавливается только после заголовка h1. Перемещала в single.php в разные места, а на странице все-равно стоит после заголовка и только категория. Печалька(((
Приншу извинения за свой предыдущий комментарий — это был мой косяк. Все работает. И стили стали работать после того, как добавила в код !important;
Благодарность автору. Помог. Это самый простой способ из тех, что до этого встречала в рунете.