1.2.1 Настройка движка WP. Ссылка сама на себя. Название сайта, главная страница
Что такое ссылка сама на себя - это циклические ссылки по факту. Они негативно влияют на поведенческий фактор (запомните это, повторять больше не буду). Бывает в шаблона WP все нарушается, либо людям лень делать, либо похер.
Чаще всего заголовок нашего сайта или лого находится в файле header.php
Пример, что искать
Код |
---|
<h1><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
|
Заменяем на это
Код |
---|
<?php if (is_front_page() || is_home()) : ?>
<h1>НАЗВАНИЕ САЙТА</h1>
<?php else : ?>
<h1><a href="/">НАЗВАНИЕ САЙТА</a></h1>
<?php endif; ?>
|
Таким образом мы получаем на морде (главной) название сайта без ссылки, на других страницах есть ссылка. Идет проверка кода на странице.
Раньше (если не знаю точно, лень проверять) Яндекс никогда и нигде не ссылался сам на себя. Потому что это тупо и вредно, N время в их дизайне даже на логотипе не было ссылки.
1.2.2 Настройка движка WP. Ссылка сама на себя. Название в полной новости
У ВП есть особенность в шаблонах, часто используется то, что есть ссылка на статью в заголовке например. И когда мы переходим на эту страницу, по факту этой ссылки не должно быть (потому что не правильно, что на нужной странице она снова ведет нас на эту же страницу из меню или хайдера - если это главная страница сайта).
Если вы изучаете коды или просто дизинг, то думаю знаете Артемия Лебедева, и его сайт. Но больше всего по данной теме мне нравится раздел "
Ководство". Если вы будете это анализировать, то поймете, что на этом сайте часто делают перемещение ссылок и смену параграфов, чтобы ссылка не была на одном месте.
Поэтому поехали.. Подходит для WP со стандартными шаблонами и многим платным.
Полная новость WP (шаблон) - single.php
Так по стандарту:
Код |
---|
<h1><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1>
|
То есть заголовок внутри новости с ссылкой на нее в заголовке 1 уровня.
Как должно быть:
Код |
---|
<h1><?php the_title(); ?></h1>
|
Заголовок 1 уровня просто с названием без ссылки.
Если вдруг по каким-то причинам у вас нет шаблона single.php (есть подобные темы), тогда делаем через index.php
Код |
---|
<?php if (!is_single()): ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php else : ?>
<h1><?php the_title(); ?></h1>
<?php endif; ?>
|
Таким образом мы получаем, что ссылка будет на названии в категории, странице и главной, но в полной новости (так как идет проверка на нахождение) ее не будет. И заголовок с h2 поменяется на h1.
Подобные слова и обзоры можно найти на сайте webliberty от 2010-2011 года. Когда-то в 13 именно там про это и читал, если не ошибаюсь.
1.2.3 Настройка движка WP. Ссылка сама на себя. Ссылки в меню
Как бы с названием в полной новости понятно, а как быть с меню? Нужно сделать так, чтобы была проверка, кодов много. Возьму старый (у меня новый вариант в шаблоне, но он под мой шаб).
Код |
---|
function wp_nav_menu_extended($args = array()) {
$_echo = array_key_exists('echo', $args) ? $args['echo'] : true;
$args['echo'] = false;
$menu = wp_nav_menu($args);
// Load menu as xml
$menu = simplexml_load_string($menu);
// Find current menu item with xpath selector
if (array_key_exists('xpath', $args)) {
$xpath = $args['xpath'];
} else {
$xpath = '//li[contains(@class, "current-menu-item";) or contains(@class, "current_page_item";)]';
}
$current = $menu->xpath($xpath);
// If current item exists
if (!empty($current)) {
$text_node = (string) $current[0]->children();
// Remove link
unset($current[0]->a);
// Create required element with text from link
$element_name = $args['replace_a_by'] ? $args['replace_a_by'] : 'span';
$dom = dom_import_simplexml($current[0]);
$n = $dom->insertBefore(
$dom->ownerDocument->createElement($element_name, $text_node),
$dom->firstChild
);
$current[0] = simplexml_import_dom($n);
}
$xml_doc = new DOMDocument('1.0', 'utf-8');
$menu_x = $xml_doc->importNode(dom_import_simplexml($menu), true);
$xml_doc->appendChild($menu_x);
$menu = $xml_doc->saveXML($xml_doc->documentElement);
if ($_echo) {
echo $menu;
} else {
return $menu;
}
}
|
Идет проверка ссылки в массиве, если она есть, тогда получается ссылка станет неактивной и должна убраться.
ps все остальное можете найти в поиске сами, это давно практикуется. Если считаете, что это вам не нужно, не делайте.