Доброго времени суток! В последнее время мне довелось довольно часто работать с Вордпрессом, поэтому хочу поделиться с вами своими наработками на эту тему.
Любой плагин Wordpress, как и расширения в Joomla, создают дополнительную нагрузку на сервер и замедляют загрузку страниц. Более того, в обоих CMS нам необходимо следить за обновлениями плагинов (расширений), а особенно за обновлениями безопасности.
Поэтому, если вы знакомы с PHP и JS и в состоянии написать свою альтернативную версию того или иного расширения, то настоятельно рекомендую это делать. При этом совсем необязательно оформлять ваше творение как полноценное расширение (плагин), вы можете просто поместить код в нужное место страницы.
Чтобы создать хлебные крошки (breadcrumbs) на своём Wordpress портале я решил установить популярный плагин Breadcrumb NavXT, но потом мне понадобилось ускорить загрузку страниц. В числе множества других мероприятий, я решил сделать самый простой и лаконичный вариант (максимально быстрый) breadcrumbs, без использования стилизации и лишнего кода. Им я и хочу с вами поделиться:
function the_breadcrumb() { echo '<div id="breadcrumb"><ul><li><a href="/">Home</a></li><li>></li>'; if ( is_category() || is_single() ) { $cats = get_the_category(); $cat = $cats[0]; echo '<li><a href="'.get_category_link($cat->term_id).'">'.$cat->name.'</a></li><li>></li>'; } if(is_single()){ echo '<li>'; the_title(); echo '</li>'; } if(is_page()){ echo '<li>'; the_title(); echo '</li>'; } echo '</ul><div class="clear"></div></div>'; }
Этот код нужно добавить в файл functions.php вашей темы оформления. Куда именно его копировать, значения не имеет, главное - не нужно эту функцию вставлять внутрь другой :)
Чтобы вызвать хлебные крошки, поместите этот код туда, где хотите их показывать:
<?php the_breadcrumb(); ?>
В созданной мной теме Wordpress макет главной страницы находится в одном файле .php, а макет внутренних страниц в другом. Поэтому данный код я поместил только на внутренние страницы, так как на главной навигация не нужна.
А вот и CSS:
#breadcrumb li{list-style:none;display:inline-block;margin-right:5px;}
Коротко и лаконично, особенно по сравнению с установкой плагина, что даёт нам максимум производительности.
Также, у меня была проблема, что в breadcrumbs ссылка на категории была вида:
http://домен/category/имя-категории
Если у вас такая же проблема, то вместо предыдущего кода, скопируйте в functions.php этот:
function the_breadcrumb() { echo '<div id="breadcrumb"><ul><li><a href="/">Home</a></li><li>></li>'; if (is_category() || is_single()){ $cats = get_the_category(); $cat = $cats[0]; echo '<li><a href="'.str_replace('/category','',get_category_link($cat->term_id)).'">'.$cat->name.'</a></li><li>></li>'; } if(is_single()){ echo '<li>'; the_title(); echo '</li>'; } if(is_page()){ echo '<li>'; the_title(); echo '</li>'; } echo '</ul><div class="clear"></div></div>'; }