Не линкуя сами себя|Никаких ссылок с главной на главную

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

Так японцы представляются, какбе говоря Я

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

Как по мне, так объективное правило остается таковым вне зависимости от того, кто его огласил. Не правда ли?


С главной ссылку на саму себя убрать проще всего. Только вот условная wp-метка (опять вспоминаем статью из Кодекса) is_home () не поможет — при использовании пагинации по главной, движок будет думать, что мы все еще на главной. Выход — выдергивание URI запроса. Если мы в корне — то ссылку не ставим, если нет — ну вы поняли, да?

<?php if(!($_SERVER['REQUEST_URI']=='/'))
	echo '<a href="...">'; ?>
	......
<?php if(!($_SERVER['REQUEST_URI']=='/'))
	echo '</a>';?>

А вот для архивов, тегов и категорий стандартные conditional tags вполне подойдут, хотя с использованием ЧПУ и пагинации, опять же, лучше использовать метод, описанный выше.

Проблемы начинаются тогда, когда пытаешься следовать этому правилу в постах и на страницах. С одной стороны, в функциях is_single () и is_page () можно указывать в качестве атрибута id и даже title поста, а выдергивать их простыми функциями get_the_id () и get_the_title (). А с другой — вывод списка страниц придется изменять прямо в Wordpress, что плохо, если вы собираетесь обновлять движок в дальнейшем.

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

← Более полное решение проблемы самоссылок

{15 комментариев} Подписка на комментарии

Правило хорошее, но имхо заморачиваться по таким пустякам у себя на блоге в 99% — пустая трата времени...

Этот пустяк не выполняется на 99% даже серьезных сайтов, по чему Тот Самый всегда не преминет пройтись :). Но дело в том, что из всех таких пустяков складывается функциональная наполненность любого проекта, будь то сайт, или малюсенький блог. Тем более, что я начал только с самых малых деталей, что у меня распланированы в молескине.

Что то я ни чего не понял. Картинка не понятная к тому же.

О, мне эта заметка оказалась очень кстати: я ровным счётом ничего не смыслю в php, а убрать ссылку с логотипа с главной на главную очень хотелось. :)

@Княгиня: вообще, так же надо убирать и другие селф-ссылки. Например, если брать «похожие посты» и свежие (плагин в моем исполнении — в разделе «ремикс»), то там правило выполняется. А вот для популярных, и даже встроенных функций страництакого нет — а тоже надо.

Спасибо, что зашли :)

@автор:

Да я бы с удовольствием убрала, но не умею — не знаю php, и всё тут. Меня хватает только на то, чтобы вставить html размётку в шаблон php, не испортив его. Ну иногда чуть-чуть подправить: например, класс выбранного раздела перенести от ссылки к пункту списка, или вроде того. Вот ежели бы на xslt, вот тут мы умеем. :) Но почти все известные мне движки используют php.

> > Если мы в корне — то ссылку не ставим, если нет — ну вы поняли, да?

куда нужно вставить этот код, чтобы убрать самоссылку с главной страницы?

ЗЫ простите за невежество. весь мозг об гугл сломал, пытаясь найти решение )

@автор:

О, кстати, у вас там, кажется, опечатка: во второй строке в <php потеряли знак вопроса.

@Княгиня: точно, раньше без типографа приходилось вставлять скобочки вручную.

@Митя: header.php в шаблоне темы. Ищем <a href="..." rel="nofollow">...</a>. И заменяем вхождения тега <a> на то, что указано выше.

у меня ссылка на главную в header'e выглядит так:

<a href="" rel="nofollow">Главная</a>

как я должен ее изменить?

Если сайт стоит в корневой (а не в site.ru/blog), то УРИ — косая черта /. Самое простое так:

<?php if(!($_SERVER['REQUEST_URI']=='/'))
	echo '<a href="..." rel="nofollow">Главная</a>'; ?>
else
	echo '<strong>Главная</strong>';
?>

Код вставляется просто помещением в скобочки, без всяких &amp;, типограф сам все заменит.

> нарушает структуру графа сайта, создавая петли в узлах

Дык ведь граф сам по себе циклический, всё равно можно кольцами ходить. А постижение дао топтания на месте — ключ к постижению движения.

Честно говоря, я не нашел у Лебедева никакой аргументации против ссылок на самого себя. По сути дела, такая ссылка — тот же Refresh в миниатюре.

Зы: «Не линкуя сами себя» — селф-референс.

@Vladimir:

Мой аргумент против ссылки-на-саму-себя простой:

само-ссылка заставляет пользователя делать лишнее действие — он думает, что куда-то идёт, а на самом деле не идёт; кроме того, он может быть дезориентирован и не сразу понять, что остался там же (например, если ссылка была внизу, а заново открывшаяся страница видна верхней частью). То есть, при желании с помощью само-ссылки можно достигнуть высокой степени дезориентации. :)

@Vladimir: Да дело не в Лебедеве, хотя я повторю ссылку www.artlebedev.ru/kovodstvo/sections/75/ и цитату «Любая ссылка подразумевает перемещение. Один из основных законов гипертекстовой навигации: ничто не должно содержать ссылку на самого себя.» Тютелька в тютельку то, что написала Княгиня (тут обязательные респекты).

Но дело даже не в этом. Ссылка на саму страницу может иметь место, если элемент оформлен, скажем, как якорь — в комментариях, в статье. И это понятно. Функция «рефреша» тоже имеет место — если контент быстро обновляемый (типа твиттер, да).

Но вот в остальных случаях концепция графа с петлями работает против — когда в «свежих постах» показывают пост, в котором находишься, когда статичная «активная» страница не выделяется никак из списка выбора (это еще предстоит сделать для ВП). На главной же — вообще мрак, если говорить о блогах. Страница номер два-три-четыре, лента категории или тега — все это выглядит так же, как и лента на главной. Поэтому желательно убрать эту ссылку, чтобы не было этого топтания на месте и дезориентации.

Может, можно обойтись и без реквест-ури? у is_home есть дополнительные аргументы, как у is_singe('название поста'), например?

Дзен-дзеном, а к пользователю как к буддистскому ученику относиться не стоит :)

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

Да и вообще, мне не нравится концепция «логотип-ссылка». Невнятно это во многих случаях (для привыкших же к ней — невнятно искать ссылку «главная»). Поэтому я в прошлой версии «дизайна» дублировал их, а сейчас не знаю, думаю, играюсь.

А на урл не обращай внимания, я с ним слишком изгаляюсь. :)

А здесь можно оставить свое мнение ↓ Подписка на комментарии
какие-то из следующих трех полей можно оставить пустыми


нет тегам!!! **эмоция**, __ирония__, >цитата, {[код]}