Всем привет! Сегодня на seo-mayak.com я расскажу, что такое сквозные ссылки и какое влияние они оказывают на продвижение сайта, а также объясню причем тут внутренняя SEO-оптимизация.
Если кто-то ждет, что я начну рассказывать, как продвигать сайт с помощью сквозных ссылок, размещая их на разных ресурсах, то хочу Вас огорчить, разговор будет прямо противоположным.
Речь пойдет как раз о вреде сквозных ссылок, которые упорно не хотят замечать на своих сайтах многие веб-мастера.
Сквозные ссылки — это те ссылки, которые расположены на всех страницах сайта. Потому они и называются сквозными, что как бы пронизывают сайт насквозь.
К сквозным ссылкам можно отнести внутренние или внешние ссылки, расположенные: в шапке сайта, в сайдбаре или в футере (подвале).
Теперь давайте разберемся какие ссылки обычно оказываются в вышеуказанных местах и выясним, насколько они полезны. Поехали!
Сквозные ссылки в шапке сайта
В шапке сайта обычно располагается меню навигации, в котором есть ссылка на главную страницу, а также ссылки на статические страницы сайта. Но все зависит от шаблона.
Бывает, что в некоторых темах, в шапке, кроме меню навигации по статическим страницам, может еще располагаться меню с ссылками на категории. На моем кулинарном блоге реализована как раз такая схема.
Все ссылки с навигационных меню являются сквозными, т.е. какую бы Вы не открыли страницу, на ней обязательно будет шапка со всеми ссылками.
К ссылкам на категории мы еще вернемся, а пока я хочу заострить ваше внимание на скрытых сквозных ссылках, которые не видны пользователю, но по которым свободно гуляют поисковые роботы.
Это ссылки выводимые функцией wp_head() в область шапки сайта, между тегами <head></head>. Все эти ссылки являются сквозными, советую почитать статью и избавиться от лишнего хлама в header.
Также в шапке сайта очень часто располагается ссылка-картинка на ленту feedburner, которая также является сквозной. Не стоит забывать, что ссылка на ленту feedburner — это внешняя ссылка. А теперь посчитайте сколько страниц на вашем сайте, именно столько раз продублируется данная ссылка.
На моем блоге также в шапке сайта есть ссылка-картинка на feedburner, но она не индексируется, так как я ее закрыл с помощью скрипта, что и Вам советую.
В общем все шаблоны разные и возможно у кого-то в шапке еще есть какие-то внешние ссылки, надо тщательно проанализировать исходный код, выявить и закрыть эти ссылки в скрипт. Идем дальше.
Сквозные ссылки в сайдбаре
В сайдбаре в 90% случаев расположено меню навигации по категориям. Чуть выше я уже говорил, что в некоторых шаблонах ссылки на категории могут располагаться или дублироваться в шапке сайта.
Все ссылки с меню навигации являются внутренними. Можно считать за благо, что это внутренние ссылки, но все не так однозначно. Зачастую страницы категорий, во избежания частичных дублей, закрыты от индексации в файле robots.txt или с помощью мета-тега robots.
Возникает резонный вопрос, зачем нужны сквозные ссылки, ведущие на заблокированные страницы? А ответ прост — не нужны! Вернее, навигационное меню конечно необходимо для удобства пользователей и в общем для юзабилити сайта.
Но здесь надо понимать, что с каждой страницы, по всем этим ссылкам утекает статический вес! Не перетекает, а именно утекает, так как заблокированным страницам статический вес никчему, тем более вес не потечет дальше, а просто останется на страницах с категориями «мертвым грузом».
Если категории открыты для индексации и участвуют в поиске, то это конечно другое дело. Вес будет перетекать на страницы с рубриками и в последствии перейдет по ссылками на страницы с записями и т.д.
Но робот не ходит по ссылкам на заблокированных страницах и если категории закрыты, то вес дальше не пойдет и сайт его просто потеряет. Надеюсь понятно.
На некоторых сайтах меню категорий насчитывает 30 и более ссылок. Представляете сколько статического веса уходит в никуда, ведь все ссылки в меню сквозные и забирают вес с каждой страницы сайта.
Если эти ссылки вредные, то как закрыть от индексации все меню? Некоторые веб-мастера скрывают от индексации сайдбары целиком.
Но допустим у меня в сайдбаре есть информация, которую я бы не хотел скрывать от роботов, а хочу скрыть только меню категорий, как мне тогда быть?
Выход всегда есть! Можно закрыть ссылки на категории с помощью jQuery AJAX и сделать это можно двумя способами.
Способ №1
Для начала надо выполнить все инструкции, описанные в этой статье.
Напомню как выглядят ссылки на рубрики в исходном коде:
После того, как подключена библиотека jQuery и установлен скрипт обработчик, открываем файл functions.php (советую пользоваться FTP клиентом Notepad++) и в самое начало после тега <?php вставляем следующую функцию:
function mayak_hide_navigation_menu( $mayak_hide_menu ) { $pum = array ("<a", "/a>", "href", ); $bum = array ('<span class="external-reference"', "/span>", "data-link"); return str_replace($pum, $bum, $mayak_hide_menu); } add_filter( 'wp_list_categories', 'mayak_hide_navigation_menu' );
После чего ссылки на категории в исходном коде примут следующий вид:
Благодаря скрипту-обработчику все ссылки останутся в рабочем состоянии, но не будут индексироваться поисковыми роботами и как следствие по ним не будет утекать статический вес.
Способ №2
Второй способ немного сложнее, так как требует создания нового файла.
После того, как подключена библиотека jQuery, создаем в папке с темой новый php-файл под названием, например: ajax-menu.php. Внутрь файла помещаем следующий код:
<?php require_once("../../../wp-config.php"); ?> <?php wp_list_categories('sort_column=name&title_li='); ?>
За вывод списка категорий в WordPress отвечает функция wp_list_categories(), которая может принимать множество параметров. В своих будущих статьях я обязательно более подробно разберу данную функцию, так что подписывайтесь на обновления блога, а сейчас я не буду на этом останавливаться.
Открываем файл footer.php и после тега </body> вставляем такой скрипт:
<script>(function($){ $(function(){$("#menu").load("http://Ваш домен/wp-content/themes/Название вашей темы/ajax-menu.php");})})(jQuery)</script>
Не забудьте вписать в скрипт свой домен и название папки с темой.
Далее идем в админку сайта и вставляем в виджет следующий код:
<div id="menu"></div>
Сохраняем изменения, после чего в исходном коде страницы вместо ссылок на категории у нас останется пустой блок div с идентификатором:
Но на самом деле у нас в сайдбаре будет как и прежде располагаться полноценное меню категорий. Единственное, что может потребоваться, так это подправить стили, просто у нас изменяться идентификатор. Все стили прописываем для идентификатора:
#menu
Надеюсь понятно!
На первый взгляд второй способ выглядит более привлекательно, но здесь важно понимать один момент. Если Вы, при составлении семантического ядра, закладывали в названия рубрик ключевые слова, то после реализации сего метода, робот уже не сможет проиндексировать анкоры ссылок, так как он их не найдет в исходном коде. В первом же способе все анкоры останутся на месте. Идем дальше.
Второй способ использования jQuery AJAX наиболее подходит для скрытия от индексации внутренних ссылок с облака меток, которые тоже являются сквозными и ведут на заблокированные страницы. Я сам облако меток не использую, но многие веб-мастера его применяют, поэтому не лишнем будет и об этом рассказать.
За вывод облака меток отвечает функция wp_tag_cloud(). Создаем еще один php-файл под названием ajax-tag.php и внутрь вставляем следующее:
<?php require_once("../../../wp-config.php"); ?> <?php wp_tag_cloud (); ?>
Скрипт обработчик должен выглядеть следующим образом:
<script>(function($){ $(function(){$("#tag").load("http://Ваш домен/wp-content/themes/Название вашей темы/ajax-tag.php");})})(jQuery)</script>
На месте вывода меток прописываем блок div c идентификатором tag:
<div id="tag"></div>
В принципе не сложно.
Но данный метод имеет свой недостаток. Для каждого случая придется прописывать новый скрипт. В принципе можно создать и подключить отдельный js-файл, куда в дальнейшем будут вписываться коротенькие скрипты. Это уже по желанию.
Также веб-мастера очень часто вставляют в сайдбар блок «ТОП комментаторов» в котором присутствуют сквозные внешние ссылки, ведущие на сайты лучших комментаторов. Пусть они и закрыты тегом noffolow, но noffolow не предохраняет ссылки от индексации и как следствие не предотвращает утечку статического веса.
Данные ссылки также можно убрать в скрипт. Ждите статью, в которой я приведу код блока «ТОП комментаторов» адаптированный под скрипт. Кстати поступало очень много просьб рассказать, как сделан «ТОП комментаторов» у меня на блоге. Вот заодно и расскажу.
Таким же образом можно убрать в скрипт ссылки с постраничной навигации, хотя они и не считаются сквозными, но по ним также утекает вес. Кто немного разбирается в php, тот без труда сможет это сделать. Ну а те в php не очень, пишите, что-нибудь придумаем.
Предвижу рассуждения о клоакинге. Друзья, если люди прячут сайдбары в скрипт и поисковые системы это не считаются клоакингом, то мой метод вообще выглядит «законопослушным», так что не бойтесь и не слушайте паникеров.
Еще есть мнения, что Google умеет читать AJAX и что мол скрывать ссылки таким методом бессмысленно. Так вот, что я скажу. Читать то он может и читает, но ссылки спрятанные в скрипт Google не индексирует и в конце статьи я это докажу. Идем дальше.
В бесплатных шаблонах, в сайдбаре, частенько присутствуют левые внешние сквозные ссылки, т.е. проставленные распространителями шаблонов. Это метод черного SEO и рассчитан на новичков, которые плохо разбираются в кодах и не смогут сами с ними расправиться. В этом случаи хорошо помогает плагин ТАС, с помощью которого можно легко найти и обезвредить скрытые сквозные ссылки.
Теперь о всяких книжках, курсах, рекламных баннерах и т.п. Это тоже сквозные ссылки и по возможности их тоже не помешало бы убрать в скрипт.
В общем любые сквозные ссылки ведущие на внешние сайты или на заблокированные в robots страницы желательно закрыть от индексации, этим Вы существенно поможете своему проекту, в плане сохранения статического веса и концентрации его на нужных страницах, что обязательно скажется на продвижении.
Сквозные ссылки в футере (подвале)
В подвале веб-мастера очень часто располагают различные счетчики посещаемости, типа LiveInternet и тому подобных. Некоторые новички не понимая, что любой счетчик содержит внешнюю ссылку, забивают ими весь подвал, видно полагая, что это поможет им собрать больше данных для анализа.
Уважаемые начинающие веб-мастера, большое количество счетчиков не даст вам ничего кроме дырок, через которые будет утекать статический вес. Одного хорошего счетчика вполне достаточно!
Я здесь не говорю про Яндекс Метрику или Google Analytics, их надо ставить не ранее чем через пол года, после рождения проекта.
Можете проверить свой сайт на наличие сквозных внешних ссылкок с помощью сервиса linkpad.ru. Для этого надо вбить свой домен в поле для поиска и на открывшийся странице выбрать пункт «Ссылки на сайте»:
Пример наглядно показывает, что 822 внешние ссылки с моего блога были проиндексированы. Если полюбопытствовать, что это за ссылки, то станет понятно откуда они взялись:
Почти все показанные сервисом ссылки — это ссылки: со счетчика liveinternet.ru, с рейтинга top100.rambler.ru и каталога list.mail.ru.
Поэтому стоит убрать и эти ссылки в скрипт.
Для этого в папке с темой создаем файл под названием ajax-koll.php, куда помещаем функцию require_once() и коды счетчиков:
<?php require_once("../../../wp-config.php"); ?> <a href="http://list.mail.ru"><img src="http://list.mail.ru/img/listru-a21.gif" alt="" width="88" height="31" border="0"/><a> <a href="http://www.liveinternet.ru/click" target="_blank"><img src="//counter.yadro.ru/logo?45.1" title="LiveInternet" alt="" border="0" width="31" height="31"/></a> <a href="http://top100.rambler.ru/navi/2835828/"><img src="http://counter.rambler.ru/top100.cnt?2835828" alt="Rambler's Top100" border="0" /></a>
Затем в файл footer.php вставиляем еще один скрипт с указанием пути до файла:
<script>(function($){ $(function(){$("#koll").load("/wp-content/themes/wp-themes-blogger/ajax-koll.php");})})(jQuery)</script>
А вместо вырезанных кодов счетчиков в футере вставляем блок div с идентификатором koll:
<div id="koll"></div>
К слову о способностях Google читать AJAX. Если вбить в адресную строку браузера такой запрос:
http://google.com/search?q=cache:seo-mayak.com
То Вы не увидите в подвале ни одного информера и это потому, что Гугл их не обнаружил, иначе они были бы кешированы вместе с другими элементами страницы. Вот такие дела!
До встречи!
С уважением, Виталий Кириллов
Добрый день Виталий. Полезная статья, спасибо. Полный код счетчика рамблер содержит скрипт и ссылку
Вы же помещаете в файл ajax-koll.php только ссылку, а где остальная часть кода?
Александр, я немного изменил код счетчика рамблер.
Здравствуйте, Виталий.
В файлы functions.php, header.php и footer.php внес все необходимые дополнения, и в коде страницы категории стали прописываются как обычный текст.
Поскольку я помимо категорий использую метки и архивы, то решил скрыть их также.
В предложенную Вами способом №1 функцию я добавил следующие строки:
add_filter( ‘wp_tag_cloud’, ‘mayak_hide_navigation_menu’ );
add_filter( ‘get_archives_link’, ‘mayak_hide_navigation_menu’ );
и вроде все получилось. Теперь метки и архивы в коде страницы также прописываются как обычный текст.
Как Вы думаете, я ничего не испортил своей самодеятельностью? Т.е. получил, что хотел, но тем самым испортил что-то в другом месте.
С уважением,Гагик.
Здравствуйте Гагик! Если все работает, то напортить ничего не должны.
А еще добавил следующую строку:
add_filter( ‘the_category’, ‘mayak_hide_navigation_menu’ );
т.к. в моей теме после каждой статьи выводится ссылка на категорию, содержащую данную статью.
И теперь в коде страницы данная ссылка также прописываются как обычный текст.
Вы быстро учитесь)
Спасибо )
Пока ждал Вашего ответа, прочел статью «wp_head() — функция WordPress. Лишние ссылки в header» и сделал все как Вы советуете, но даже после этого у меня в header-е осталось несколько ссылок, указывающие на версии продуктов:
,
и еще целый блок побольше размером внизу страницы, которых нет на Вашей странице.
Нижний блок с ссылками я смог убрать посредством удаления функции в футере, но потом все вернул на место, т.к. прочел где-то, что без данной функции некоторые плагины не будут работать.
Виталий, что посоветуете?
Я имел в виду функцию wp_ footer
Функцию wp_ footer(), также как функцию wp_head(), используют плагины и ссылки в подвал выводят именно они, а не WordPress. Советую минимизировать количество используемых плагинов.
Добрый вечер, Виталий!
Я сегодня решил сравнить код страницы сайта при входе на него как администратор и как обычный пользователь и установил для себя, что код страницы пользователя не содержит в Header-е и Footer-е всех тех ссылок с версиями программных продуктов о которых я говорил в моем предыдущем комментарии, что конечно очень радует. Но в связи с этим у меня возник вопрос:
Какую из этих страниц сканирует робот ПС?
С Уважением, Гагик.
Здравствуйте Гагик!
Робот не знает пароль от админки…
Спасибо, Виталий!
Теперь буду спать спокойно)
Здравствуйте Виталий. А ссылки на Гугл+, Группу Вконтакте, Фидбенер и т.д. тоже нужно скрывать или нет? Заранее спасибо за ответ.
Если они сквозные, то лучше закрыть.
Можно подробнее, как закрыть сквозные ссылки соцсетей в шапке и футере блога? А еще лучше, как закрыть футер и шапку целиком от индексации?
Большое спасибо за статью! Но это просто уже невыносимо: все надо делать-делать-делать, менять, редактировать. Только вкладывай и вкладывай, а отдачи ноль(… И кто придумал, что блогинг — отличная возможность заработать? Закидать его помидорами)))
Саша, что за осенние настроения? Никто и не говорил. что будет просто.
)Это не хандра, это реальный взгляд на вещи. Когда блогу почти 2 года, а он еще ничего не принес из дохода…. Только приходится еще больше в него вкладывать. А пользователям интернета преподносят блогинг как очень выгодное занятие. Выгодное, но для инфобизнесменов, ведущих тренингов и прочих, наверно.
Саша, желающих иметь пассивный доход с интернета пруд пруди, но далеко не всем удается добиться успеха. Я сам лично знаком с несколькими веб-мастерами, которые прилично зарабатывают на своих сайтах и поверьте у них это тоже не сразу получилось. А два года — это не срок!
Не сдавайтесь!
Спасибо!) Банально жаль потраченных сил, времени и денег. Поэтому буду и дальше выжимать, пока, видимо, не добьюсь нужного мне результата.
Здравствуйте Виталий! Я пытаюсь поставить функцию, по второму способу, чтобы закрыть рубрики в сайдбаре, но у меня не получается, после того как я ставлю в function.php код, рубрики становятся серого цвета, у них просто исчезают ссылки, в рубрику попасть невозможно! Как решить эту проблему? Заранее благодарен!
Евгений, задача для новичка довольно не простая и требует знаний CSS. И еще, во-втором способе в файл functions.php не какого кода вставлять не надо.
Извините, я имел введу первый вариант, хорошо попробую сделать как Вы описали во втором варианте, создам файл! Интересно узнать, как сделать так чтобы первый вариант был рабочим! Спасибо!
Евгений, чтобы первый вариант был рабочий надо сначала выполнить действия, описанные в другой статье, ссылку на которую я привел. Читайте внимательно.
Да я сделал! Добавил в header нужный код, чтобы подключить jQuery, далее делаю все как написано в первом варианте, после чего, как я уже говорил ранее, в меню названия рубрик становятся серыми, кликнуть по ним просто невозможно! Помогите разобраться, буду весьма благодарен!
Евгений, а Вы попробуйте сей метод на простых ссылках, может у Вас скрипт не работает.
Здравствуйте Виталий. У меня на сайте стояли счетчики от майл ру и рамблер, но три месяца назад я их удалил. Почему при проверке linkpad.ru до сих пор показывает, что на сайте есть ссылки на них?
По-моему статистика linkpad.ru обновляется раз в квартал.
Виталий, а если ссылок на сайте не показывает этот сервис это плохо или хорошо ?
Евгений я думаю это плохо, наверное ваш сайт плохо индексируется, так как у вас везде нули. Также возможно сервис начинает собирать статистику только в том случаи, если сайт достиг определенных показателей роста.
Так что в моем случае, предложите делать ??
Евгений, я Вам посоветую набираться знаний и опыту.
Еще раз спасибо за статью! Морально собираюсь заняться изучением этой технологии:). Решила уточнить на всякий случай: в идеале в сайдбаре желательно закрыть все («Свежие записи», «Архив», «Рубрики»)? А еще нужно закрыть от индексации Фидбернер и счетчик ЛайвИнтернет, да?
Здравствуйте Саша! Ссылки с блока «Свежие записи» не ведут на заблокированные страницы и закрывать их не надо, а вот архивы и рубрики зачастую закрыты для индексации, поэтому данные блоки можно скрыть. Фидбернер и счетчик ЛайвИнтернет также надо закрывать.
Спасибо! Буду изучать, пытаться.
А читал рекомендации, что рубрики наоборот не нужно закрывать от индескации.
Попыталась вчера). Но настоятельно советую обращаться к специалистам, а не ковыряться самим. Во-первых, не понятно, как какие ссылки прописывать. Во-вторых, может многое послетать в шаблоне. Лично я больше сама ковыряться не буду:) Мало ли что. Но статья отличная и продвинутым гражданам точно пригодится.
Очень дельная статья. Хотя есть у меня блог для экспериментов, где я умышленно делаю всё «против правил», а он растет как на дрожжах, чисто по контенту.
Но на личном, конечно, надо будет пересмотреть все ссылки на предмет «сквозняков».
<a href="http: //plus.google.com" rel="nofollow"><a>
<a href="http: //www.liveinternet.ru/click" rel="nofollow"></a>
Это правильный код? Не то, я плоховато Вас понял)
Иван, если вы закрываете ссылки в скрипт, то зачем Вам rel=»nofollow?
Здравствуйте, Виталий! Спасибо Вам за такие серьезные и содержательные статьи. А я вот задумалась — а хорошо ли что из хлебных крошек идет ссылка на категории? Почему там не стоит хотя бы nofollow?
Здравствуйте Daria!
Хлебные крошки не являются сквозными, но Вы правы, ссылки на категории в них не закрыты. Закрывать их nofollow не имеет смысла, а вот как закрыт скриптом я обещаю подумать. У меня сейчас дефицит времени и новые статью стоит ожидать ближе к новому году.
Здравствуйте. Спасибо. Статья отличная. И разъясняется доступнее чем у других. Закрыл рубрики и т.д. Но вот если в сайбаре есть код, который должен выводить информацию о текущей записи, то есть небольшая проблемка. Например, вставляем в hidden.php функцию <?php wp_title(); ?> …. и ничего. При подгрузке через Аякс невозможно получить ни заголовок, ни рубрику текущего поста, ни метку. Вы сталкивались с таким? Это решаемо?
Здравствуйте Евгений! Если честно я ничего не понял. Что за файл hidden.php? Такого нет в стандартном наборе файлов шаблонов WordPress.
Так (hidden.php) я назвал файл со скриптом Аякс. У Вас к примеру он имеет название ajax-menu.php. Название неважно. Суть вот в чём. Если создать файл со скриптом, например:
<?php require_once("../../../wp-config.php"); ?>
<?php wp_title(); ?>
То он не выведет НИЧЕГО. А должен был бы вывести заголовок текущей записи. При подгрузке через Аякс невозможно определить заголовок текущей записи, рубрику текущей записи и т.д.
Евгений, надо проверить. Пока время нет.
Согласен с Евгением! Ajax не выводит текущие ссылки статьи…Ни название статьи, ни рубрики, ни метки. Просто пустое поле выводит! Виталий подскажите как это исправить! Спасибо.
Денис, функция the_title работает только внутри цикла WordPress, отсюда и проблемы.
Привет! заметно что в кодах ты силен, но насчет разных ссылок и борьбы с ними — поветь все ето фигня. Алгоритм гугла розработан очень толково, по моим наблюдениям учитывает ВСЕ что физически возможно реализовать, даже текст с изображения пытается считать(ксть доказательстава)
не надо ничево там закрывать
Здравствуйте! А по моим наблюдениям, после сих манипуляций посещалка с Гугла заметно подрастает. Сколько людей, столько и мнений.
Господя, даже непонятно неофиту кого слушать) Одни одно говорят, другие другое….)
Роман, все что я публикую, в первую очередь испытываю на своих проектах. Согласен, информация противоречива и поверьте я тоже в свое время не знал кого слушать, но тут выбор за Вами.
Дя я не про себя) Я уже практически для себя всё решил…. Я про неофитов которые только первый блог создали. Однако и меня мозг иногда взрывался от изобилия информации.
У меня после ввода первого скрипта в functions.php выскакивает синтаксическая ошибка((
Олеся, Вы выполнили инструкции описанные в этой статье?
Всё нормально теперь, спасибо) Вчера вечером мой молодой человек пришёл, присел на три минуты и всё исправил. У меня шаблон просто немного косячный, там свои заморочки)
Вопрос не по теме записи: а для блога нормально, если его долго не обновляют?
Хорошего конечно мало, но у меня в данный период просто нет времени. Немного разгребу дела и возьмусь за блог. А что касается позиций в поисковой выдаче, то мой кулинарный блог уже скоро два года, как не обновлялся, но позиции не потерял, хотя больше посетителей тоже не стало.
Есть в этом и положительные стороны! Опять не могу не вспомнить эту ужасную школу «СтартАп», которая только и делала, что говорила: надо обязательно регулярно обновлять блог, в равные промежутки времени, иначе вообще уйдет из выдачи и бла-бла-бла…. Чтоб у них так все шло, как они советовали)))…. Я тоже видела блоги, которые долго не обновлялись, но своих топовых позиций не теряли. Главное, писать, когда есть желание и возможность, а не просто потому, что надо. Буду и сама скоро так делать. Писать только под настроение.
Я знаю, почему «seo-специалисты» советуют писать каждый день. Это потому, что ежедневное обновление блога дает свой эффект, но этот «эффект» надо постоянно поддерживать.
Вот-вот. Я этот эффект не ощутила, поэтому не вижу никакого смысла сидеть и стараться непонятно ради чего. Будет желание и настроение — постараюсь. А нет — так нет).
Хотелось бы кое-что уточнить. После вставки указанного в статье скрипта N1 для сокрытия ссылок в сайдбаре. Надписи (ссылки) превращаются в обычный текст (не кликабельный) и почему-то уменьшаются в размерах. Отсюда вопрос:
— Из-за чего подобное происходит (так как после удаления скрипта ссылки опять возвращаются в кликабельный вид
— Можно проверить подключилась ли библиотеки jQuery к сайту или нет?
Как я понимаю за закрытие ссылок в категориях отвечает строка скрипта:
add_filter( ‘wp_list_categories’, ‘mayak_hide_navigation_menu’ );
может в этом скрывается какая-то ошибка?
Заранее спасибо за ответ.
Олеся, у вас не работает скрипт обработчик. Попробуйте его вставить в файл header.php между тегами <head></head>. В исходном коде у вас все правильно.
Без результата — не хочет скрипт обработчик работать совместно с функцией…. Будем искать….
Здравствуйте! Сайт на html 5 Вместо рубрик на сайте вывожу боковое меню категорий Они также как и рубрики будут иметь сквозные ссылки? Есть ли какой способ скрыть их?
Алексей, а чем отличаются категории от рубрик?
пробовал ваши примеры 1 и 2-й в обоих случаях ссылки в меню остались без изменения вот и подумал что они могут иметь какое то отличие
Тогда без детального анализа я не берусь сказать в чем причина.
ссылки page постраничной навигации тоже передают вес? стоит их закрывать на главной страницы?
Я закрыл.
просмотрел ваш код не увидел что они закрыты
Алексей, а вы используете мой код постраничной навигации из моей статьи?
Попробывал ваш код постраничной навигации Проверяю исходящии ссылки все ссылки присутствуют /page/2,3,4…n есть ли какие другие способы закрытия ссылок page?
На каком сервисе Вы проверяли ссылки?
_mainspy.ru/analiz_ssylok_sajta
Ничего он не определяет!
сделал скриншёт _s020.radikal.ru/i723/1501/92/68f04bfb9384.png
Алексей, так вы в коде, который взяли с моего блога, не поменяли теги «а» на теги «span» и не вставили класс. Я то думал вы сделали, как у меня и какой-то сервис там что-то видит…
а как это сделать? всё что мог уже попробовал
Хорошо Алексей, скоро будет статья, где я все расскажу.
Спасибо за интересный сервис нашел много интересных ссылок на свой блог.
Спасибо за статью. Актуальная тема, но как-то не очень хочется связываться со скриптами.
Виталий, а что Вы думаете по поводу закрытия, через php-редирект, файл с кодом которого закрыт от индексации через robots.txt?
Например,
имя_сайта/go.php?url=алиас
Внутри go.php идет синтаксический разбор параметров и в итоге пользователя закидывает на нужную внутреннюю страницу сайта. Этот способ используют для сокрытия внешних ссылок многие веб-мастера, включая меня. Не пробовали ли Вы такой способ для закрытия внутренних ссылок?
Олег, я нет я не пробовал, не меня «пугают» редиректы, по-моему их может получиться довольно много, что скажется на скорости загрузки сайта в общем.
Здравствуйте!
По вашим материалам на блоге ВП пытаюсь закрыть внутренние ссылки на категории и рубрики, для этого в файле functions.php прописал замену для ссылок на метки (например) с «a» на «span»:
/* Hide the tags links */
function llgr_hide_navigation_tags( $llgr_hide_tags ) {
$pum = array ("<a", "/a", "href", );
$bum = array ('<span class="external-reference"', "/span", "data-link");
return str_replace($pum, $bum, $llgr_hide_tags);
}
add_filter( 'the_tags', 'llgr_hide_navigation_tags' );
/*—————————————*/
Соответственно раньше ссылки на метки были вида:
<a href="
http://dogshow.me/tag/golden-retriever
" rel="tag">Золотистый ретривер</a>А теперь:
<span class="external-reference" data-link="
http://dogshow.me/tag/golden-retriever
" rel="tag">Золотистый ретривер</span>Скрипт для обработки и открытия ссылки:
<script>$('.external-reference').replaceWith (function (){return'<a onclick="return !window.open(this.href)" href="'+$(this).data ('link')+'" title="'+$(this).text ()+'">'+$(this).html ()+'</a>';})</script>
Библиотека подключена последняя, но перепробовал разные от 1.8.3.:
<script type='text/javascript' src='
http://dogshow.me/wp-includes/js/jquery/jquery.js?ver=1.11.1
'></script>Скрипт не работает. Метки обёрнулись в span, но не открываются.
Подскажите, пожалуйста, как реализовать, в чём может быть ошибка.
Благодарю за ответ.
Помогло вот такое изменение скрипта:
<script>
+function($){
$(document).ready(function(){
$('.external-reference').replaceWith (function (){return'<a onclick="return !window.open(this.href)" href="'+$(this).data ('link')+'" title="'+$(this).text()+'">'+$(this).html()+'</a>';});
});
}(jQuery);
</script>
Теперь ссылки на метки отображаются так:
<a onclick="return !window.open(this.href)" href="
http://dogshow.me/tag/golden-retriever
" title="Золотистый ретривер">Золотистый ретривер</a>Виталий, у вас ссылки в блоке ТОП5 комментариев отображаются аналогично:
<a onclick="return !window.open(this.href)" href="
http://dogshow.me/faqs/kto-takoy-handler
" title="Роман llgr">Роман llgr</a>Значит всё правильно настроено? Не могли бы Вы посмотреть на моём блоге и развеять сомнения?
Благодарю за ответ.
Роман, если Все работает, то значит все нормально.
Здравствуйте Роман! А вы в каком файле подключали скрипт?
Всё работает, спасибо, за вашу статью!
В конечном счёте остановился на таком варианте:
<script>
+function($){
$(document).ready(function(){
$('.hidden-link').click(function(){window.open($(this).data('link'));return false;});
$('.external-reference').replaceWith(function(){return'<a onclick="return !window.open(this.href)" href="'+$(this).data('link')+'"title="'+$(this).text()+'">'+$(this).html()+'</a>';});
});
}(jQuery);
</script>
hidden-link оборачивает в span’ы — для простых ссылок
external-reference — для картинок и блоков
скрипт подключен перед </body> в файле footer.php
Кстати в 1-ом способе в строках №2 и №3 можно заменить "/a" и "/span" на "/a>" и "/span>" соответственно, потому что при закрытии категорий и меток логут ломать ссылки начинающиеся с буквы «а», например data-link="
http://dogshow.me/tag/akita
"Ой, преобразователь неправильно обработал data-link
Вы правы роман, надо поправить код.
Виталий, спасибо, Вы мне открыли глаза на сквозные ссылки. Я о них раньше даже не задумывалась. Полезная статья!
Пожалуйста Валентина! Рад видеть Вас на блоге.
Виталий привет! Проблема с графическим отображением счетчика liveinternet возникла…Главное счетчик метрики нормально отображается, а счетчик liveinternet без показа посетителей в коробке…Не знаешь что может быть?
Здравствуйте Евгений! Думаю надо выждать время, когда специалисты liveinternet в очередной раз отладят отображение своих информеров.
В первом способе для чего нужен этот класс class=»external-reference» ?
Именно на этот класс ориентируется скрипт обработчик.
После того как закрыл рубрики по ним невозможно перейти Что я сделал не так?
Значит скрипт обработчик не действует, а может Вы библиотеку не подключили. Причин может быть несколько.
Про облако тегов и закрытие счетчиков интересно, но пока сложно для меня. Надо еще пару раз статью перечитать.
Виталий привет! при установке счетчика от рамблер вознеикает проблема, из-за вот такой строчки в скрипте, который устанавливается в теле футера, до : src=»http://counter.rambler.ru/top100.jcn?000000 . Она выводит значок рамблера, под футером, и второй значок рамблера появляется в футере, с такой же картникой как на твоем сайте. Как решить такую проблему?
Евгений, приведи мне полный код от Рамблера, не забудь воспользоваться преобразователем.
<!— begin of Top100 code —>
<script id="top100Counter" type="text/javascript" src="
http://counter.rambler.ru/top100.jcn?3125820
"></script><noscript>
<a href="
http://top100.rambler.ru/navi/3125820/
"><img src="
http://counter.rambler.ru/top100.cnt?3125820
" alt="Rambler's Top100" border="0" /></a>
</noscript>
<!— end of Top100 code —>
Евгений, достаточно просто прописать:
<a href="
http://top100.rambler.ru/navi/3125820/
"><img src="http://counter.rambler.ru/top100.cnt?3125820
" alt="Rambler's Top100" border="0" /></a>
Способ хорош безусловно, но есть и минус — пользователь перешедший потом по такой ссылке не сможет вернуться назад в браузере, по кнопке <-, привычным способом. Единственное, что можно сделать это как указал автор, открывать в новом окне, но тогда ухудшается юзабилити сайта, да и пользователей откровенно раздражает множество окон. Второй минус — если закрыть таким методом основное меню, то в серпе яндекса НЕ появятся "быстрые ссылки", что то же не есть гуд.
Виталий, подскажите пожалуйста такой вопрос. Сразу после заголовка статьи у меня блоге выводятся ссылки на автора, дату, категории и количество комментариев. Так вот, получается что все они кроме комментариев, скрыты. Как сделать с ними точно также, как и со сквозными ссылками категорий?
Виталик, а Вам вообще страницы автора нужны? У вас есть карта сайта, зачем вам еще ваши последние статьи, ведь я так понимаю на блоге Вы один автор. Просто уберите ссылку из кода вывода автора статьи.
Здравствуйте Виталий! Возникла проблема у меня. Как вывести по второму варианту категории и метки к статье в которой находишься? Не срабатывает функция
<?php require_once("../../../wp-config.php"); ?>
<?php _e("Категория:"); ?><?php the_category(',') ?><br />
<?php the_tags(__('Теги: '), ', '); ?>
Выводится только текст — Категория:
Метки вообще не появляются.
А вот функция wp_list_categories работает
Помогите разобраться в чем проблема. Может быть другую функцию нужно писать для вывода категорий и меток к текущему посту?
Заранее благодарен!!!
Здравствуйте Денис. С ходу точно не могу сказать, надо разбираться.
Денис, я разобрался в Вашей проблеме. Функции the_category и the_tags работают только внутри цикла WordPress и поэтому при AJAX ничего не выводится.
сервис _linkpad.ru показал Ссылки на сайте-586 штук в основном это яндекс метрика и ссылки партнерок Подскажите как убрать эти ссылки в скрипт?
Метрику в скрипт не загонишь. Партнерские ссылки можно конечно спрятать, но есть риск, что переходы по ним не будут зачитываться.
Здравствуйте! Подскажите пожалуйста В меню сайта удаляю циклические ссылки (когда нахожусь в активном пункте меню ссылка не активна не ссылается на саму себя)
следующим кодом
function no_link_menu( $p ) {
return preg_replace( '%((current-menu-item)[^<]+)[^>]+>([^<]+)%', '$1<span class="nolinks">$3</span>', $p, 1 );
}
add_filter('wp_nav_menu', 'no_link_menu');
все работает но в коде страницы у активного пункта меню отображается тег </a> GПодскажите как от него можно избавиться?
Здравствуйте Алексей. Не совсем ясная картина для меня, чтобы сразу указать на причину.
скрин того что получается
s020.radikal.ru/i709/1601/e9/3ce6e83b5f86.png
закрывающий тег </а> остаетсяПопробуйте так:
function no_link( $p ) {
return preg_replace( '%((current-cat)[^<]+)[^>]+>([^<]+)</a>%', '$1<span class="nolink">$3</span>', $p, 1 );
}
add_filter( 'wp_list_categories', 'no_link' );
Для рубрик получилось! а для меню не сработало ссылка полностью остается как будто код не вставлял в чем может быть проблема!? помогите пожалуйста!
function no_link_menu( $p ) {
return preg_replace( '%((current-menu-item)[^<]+)[^>]+>([^<]+)</a>%', '$1<span class="nolinks">$3</span>', $p, 1 );
}
add_filter('wp_nav_menu', 'no_link_menu');
Попробуйте вместо current-menu-item вставить current_page_item.
у меня там единственный класс current-menu-item других нету На всякий случай проверил с current_page_item не получилось
Так должно работать, хотя не факт, шаблоны у всех разные:
так тоже не сработает я меню вывожу wp_nav_menu
<?php wp_nav_menu( array('menu' => 'Навигация по сайту','container' => 'false','items_wrap' => '<a href="#" id="pull">меню</a><ul>%3$s</ul>','walker' => $walker ));?>
Ищите Алексей, решение где-то рядом. Закрывающий </a> для страниц может быть лишним.
Конечно вам надо использовать хук wp_nav_menu.
Я проверил на своем тестовом сайте, код, приведенный мной в предыдущем комментарии работает.
В общем ищите, чем смог, тем помог!
Спасибо!
Подскажите еще пожалуйста! можно ли закрыть от индексации только один пункт меню?
Не пробовал, но в программировании нет ничего невозможного.
https://wordpress.org/support/topic/add-class-to-link-in-custom-menu?replies=6
нашел одну функцию вроде то что нужнонемного подправил
function add_menuclass($ulclass) {
return preg_replace('/<a rel="fancybox"/', '<span rel="fancybox" class="external-reference"', $ulclass, 1);
}
add_filter('wp_nav_menu','add_menuclass');
но она не срабатывает
Данная функция будет срабатывать только на первом совпадении. Алексей Вы какой по счету пункт скрыть хотите?
В других пунктах у меня нет rel=»fancybox» только в последнем его и хочу скрыть
function add_menuclass($ulclass) {
return preg_replace('/rel="fancybox"/', 'class="fancybox"', $ulclass, -1);
}
add_filter('wp_nav_menu','add_menuclass');
удалось присвоить только класс последнему пункту а вот как заменить тег «а» на тег span незнаю
Попробуйте так:
Только к классу привяжитесь, я не вижу всю структуру исходного кода.
так тоже не выходит к каждому пункту присваивается придыдущаяя ссылка итого в каждом пункте по 2 ссылки И подмены тоже не происходит
Вот попробуйте функцию:
теперь по три ссылки в каждом пункте
Алексей дайте мне ftp доступ и я сделаю, а то мы в так долго будем переписываться. У меня ведь другие дела есть, за деньги!
Готово Алексей, посмотрите, как это делается.
Спасибо огромное за ваш труд Смотрю в коде но там нет подмены тега «а» на span
Ну как же нет, когда есть)
Вы наверное через firebug смотрите, так там подмены и не увидите, смотрите исходный код.
спасибо еще раз действительно в коде страницы увидел
Пожалуйста, но в следующий раз бесплатно делать не буду. Успехов.
Виталий я хотела бы уточнить: » вместо вырезанных кодов счетчиков», т.е. самих кодов счетчиков не будет? И они будут отображаться только по этим ссылкам с функциями?
Почему не будет, все будет! Счетчики, если их правильно вставить, будут исправно функционировать, но внешние ссылки с них индексироваться не будут.
Спасибо, Виталий, теперь зарегистрируюсь рамблере и майле, а так у меня только liveinternet стоит, именно из-за исходящих ссылок.
Виталий, подскажите, а как модифицировать этот код, чтобы можно было скрыть не только категории в сайдбаре, но и главное меню в шапке?
Артем, какая функция у Вас выводит главное меню?
Эмммм, вроде прописано, что wp_nav_menu, но я не уверен.
Точно wp-nav-menu) Вот кусок header с меню:
‘— Main Menu —‘, ‘indent_string’ => ‘- ‘, ‘indent_after’ => »,’container’ => ‘div’, ‘container_class’ => ‘responsive-menu-wrapper’, ‘theme_location’=>’main_menu’) );
echo »;
}
// main menu
echo »;
if( has_nav_menu(‘main_menu’) ){
wp_nav_menu( array(‘container’ => ‘div’, ‘container_class’ => ‘menu-wrapper’, ‘container_class’ => ‘headmenu’, ‘menu_class’=> ‘sf-menu’, ‘theme_location’ => ‘main_menu’ ) );
}
Извиняюсь, воспользовался Вашим преобразователем))
<!— Navigation —>
<div class="clear"></div>
<div class="gdl-navigation-wrapper">
<?php
// responsive menu
if( $gdl_is_responsive ){
dropdown_menu( array('dropdown_title' => '— Main Menu —', 'indent_string' => '- ', 'indent_after' => '','container' => 'div', 'container_class' => 'responsive-menu-wrapper', 'theme_location'=>'main_menu') );
echo '<div class="clear"></div>';
}
// main menu
echo '<div class="navigation-wrapper">';
if( has_nav_menu('main_menu') ){
wp_nav_menu( array('container' => 'div', 'container_class' => 'menu-wrapper', 'container_class' => 'headmenu', 'menu_class'=> 'sf-menu', 'theme_location' => 'main_menu' ) );
}
Попробуйте такой фильтр:
Виталий, спасибо огромнейшее!!! Все работает как надо)) Скажите, а Вы у себя хлебные крошки закрывали? И есть ли смысл? А то у меня уже закрыто и меню, и сайдбар с категориями, и ссылки в шапке и в футере)) Не посчитают это поисковые системы чересчур наглым?:)))
Нет, я хлебные крошки не закрывал, ведь это не сквозные ссылки.
Думаю, что поисковики нормально к этому отнесутся.
Виталий, здравствуйте! А возможно ли использовать Ваш код для логотипа в шапке сайта? В файле header.php у меня есть такая конструкция:
if(!is_front_page() || is_paged())
echo
"<a href=\"ССЫЛКА\" title=\"ОПИСАНИЕ\">
<img src=\"/wp-content/themes/bluediamond-v1-11/images/default-logo.png\">
</a>";
else
echo "<img src=\"/wp-content/themes/bluediamond-v1-11/images/default-logo.png\">";
Спасибо.
Если Вы хотите скрыть от индексации логотип, то необязательно использовать функцию, можно просто заменить теги a и подставить класс, в общем сделать то, что описано здесь.
То есть прямо в файле header.php я заменяю теги а на span, а вместо конструкции href=… подставляю class=»external-reference» data-link=»…»><img src="…"? Я так попробовал, но выскочил белый экран. Просто тут в коде еще есть слеши /,\. Видимо это синтаксис php, который я не очень пока понимаю)
Виталий, здравствуйте! Очень нужна Ваша помощь! Неделю радовался, что все получилось и все ссылки скрыты, но преждевременно. Случайно деактивировал вместо нужного плагин, отвечающий за вывод слайдера на главной странице (шел в комплекте с платным шаблоном wordpress). После активации слайдер и еще табличка с вкладками перестали работать. Написал в саппорт разработчику темы, где мне указали, что я подключаю библиотеку JQuery через Гугл по Вашей инструкции, хотя в теме уже предусмотрена своя библиотека. Другими словами удаляю библиотеку из Вашей инструкции и слайдер и таблица работают, но ссылки не скрыты! Я уже пробовал подключить эту злосчастную библиотеку через function.php и менял версии, все впустую:(( Не подскажите, в каком направлении нужно искать решение, ведь целую неделю все работало, и вдруг перестало:( Спасибо.
Артем, всегда надо делать резервные копии файлов и базы данных. В данный момент, что у Вас не работает?
Здравствуйте, Виталий! Копии то есть, их и пришлось восстановить. Восстановление работоспособности мне объяснили тем, что сейчас у меня гугловская библиотека Jquery подключается в самом верху страницы. Стоит ее переместить ниже или подключить через functions.php, как возникает конфликт. Сейчас все работает, но Page Speed упорно не хочет выводить меня в зеленую зону из-за скриптов:( CSS и скрипты сжаты и все ок, но само наличие скриптов вверху страницы занижает мои баллы (особенно для мобильных пользователей)
Виталий, здравствуйте. Подскажите, есть огромное желание спрятать от индексации «хлебные крошки», выводимые плагином Yoast SEO, но чтобы они остались для посетителей. Правильно ли я понимаю, что для этого просто необходимо найти функцию, которая отвечает за вывод этих крошек, и добавить ее в строку add_filter( ‘функция’ ); ? Спасибо.
Здравствуйте Артем! Не совсем так. Функция в плагине, выводящая крошки, должна иметь хук за который можно зацепить фильтр. Данный хук (крючок) задается функцией apply_filters(). В общем тема не простая и сложно ее раскрыть в рамках комментария.
Нашел много таких функций в файле плагина class-breadcrumbs.php. Пробовать все подряд добавлять в код и смотреть обернулись ли крошки в тег span?
Виталий, хочу с Вами поделиться своей победой) Добавление всех этих хуков в Вашу функцию, к сожалению, ничем не помогло. Но решение пришло))) Я нашел строчку в коде плагина, отвечающую за формирование хлебных крошек и заменил теги а на span и подставил класс class=»external-reference» data-link… И все получилось! Все крошки обернулись и в коде страницы отображаются текстом и работают как надо для посетителей)) Вот теперь почти весь вес сайта сосредоточен на статьях, да еще и очень равномерно распределен;) Спасибо Вашему блогу и Вам лично! Это реально самый крутой и полезный блог! Очень бы еще хотелось увидеть у Вас статью о том, как сделать кнопки «поделиться в соц. сетях» без плагина и сторонних сервисов)) Уверен, что запрос очень высокочастотный;)
Я рад Артем, что у Вас все получилось!
Здравствуйте, Виталий! Искала ответ на вопрос, индексирует ли поисковик ссылки по onclick, и прочитала, что индексирует! Но не только по onclick, но еще и может индексировать ссылки, скрытые предложенным вами способом. Вот статья с таким же способом: devaka.ru/articles/hide-links-from-google. Там в комментах вообще панику развели, что это «черный» сео, дорвеи, клоакинг и т.д. Вот теперь страшно стало немного) Но, судя по тому, что вы в гугле в топе, он вас за это не наказывает) Виталий, может, действительно поисковики умеют определять, что это ссылки?
Виталий, еще раз обратилась к этой статье, все перечитала)) В ней уже есть ответы на мои вопросы, так что они сняты)) Надеюсь, все это остается актуальным, два года ведь прошло.
Наталья, да Вы зря волнуетесь и не стоить внимать паникерам. Способ уже проверенный временем и доказал свою работоспособность.
Да, хотела сначала оставить ссылки и поставить rel=nofollow, но прочитав еще пару статей об этом nofollow, решила все-таки отказаться от этой идеи и вернуться к вашему способу) Тем более, осталось доделать только счетчики в футере) Не буду паниковать, доверюсь вашему опыту)) А вообще не понимаю, зачем придумали этот атрибут nofollow?? Если верить тому, что он передает вес страницы в пустоту, получается, он абсолютно бесполезный, и к тому же вредный.
Кстати, только что по подписке пришел комментарий к вашей статье «Популярные записи в сайдбаре», так там ссылка на статью мало того, что в теге a, так еще и с rel=nofollow. Это так надо или ошибка?
Наталья, во все ссылки в зоне комментариев, WordPress автоматом добавляет nofollow. Опять же руки не доходят поправить ситуацию.
понятно) ну, это, наверное, придется повозиться, чтобы внутренние ссылки остались обычными ссылками, но без nofollow, а внешние менять на span (если я все правильно поняла)
Я возни не боюсь, просто времени на все не хватает)
аналогично)
Виталий, подскажите, пожалуйста! Используя первый способ:
add_filter( 'wp_list_categories', 'mayak_hide_navigation_menu' );
как применить этот фильтр не ко всем категориям, а выборочно, по слагу?
Виталий, решила не сдаваться и самостоятельно решить задачу) Вот таким образом:
function add_rel_category($nav_menu, $args) {
$menu_args = $args->menu;
$menu_slug = $menu_args->slug;
$pum = array ("<a", "/a>", "href", );
$bum = array ('<span class="hidden-link"', "/span>", "data-link");
if (($menu_slug) == 'menu1')
$nav_menu = str_replace('<a ', '<a rel="category" ', $nav_menu);
else
$nav_menu = str_replace($pum, $bum, $nav_menu);
return $nav_menu;
}
add_filter('wp_nav_menu', 'add_rel_category', 10, 2);
Дело в том, что у меня категории выводятся не функцией wp_list_category, а wp_nav_menu (но принцип один и тот же). Просто понадобилось это потому, что в одном произвольном меню мне нужно было в ссылку вставить rel=»category» (т.к. рубрики индексируются), а в другом произвольном меню заменить ссылки на span.
Наталья здравствуйте! Не мог сразу ответить, но я рад, что Вы за это время смогли решить задачу. Еще раз поражаюсь Вашему стремлению к знаниям!
Виталий, в коде часто встречается слово «mayak» это имя вашего сайта? Или какой-то программистский знак? Может быть вам такой вопрос смешным покажется, но это ничего, я правда это серьезно спрашиваю. Если это ваш сайт, тогда это слово нужно заменять на имя своего сайта или как?
Я это слово оставляю в коде, как у вас написано.
Это моя личная метка, как программиста, не советую в функции ничего менять.
Здравствуйте Виталий,по первому способу я все правильно сделала, но он у меня совсем не работает — в категориях не появляется span.external-reference, удалила все скрипты.
Вторым способом сделать не сумею, я совсем не программист, копирую у вас и вставляю, чисто механически, совершенно не зная сути программирования.
Хорошо поняла, что писать статьи при таких дырах, почти бесполезно. Виталий, я хотела бы вас попросить закрыть мои » сквозняки» платно, когда у вас будет время.
Здравствуйте Ксенья Юрьевна! Напишите мне, через форму обратной связи.
Здравствуйте Можно ли в вашей функции сделать чтобы ссылки в рубриках закрывались скриптом на всех страницах кроме главной а при клике по рубрикам открывались в новом окне браузера?
Виталий без вашей помощи ни как не разберусь! Подскажите пожалуйста как можно сделать чтобы ссылки категорий закрывались скриптом на всех страницах кроме главной!?
Как-то так:
Извините Виталий, но не получается первый метод. Вот я хочу закрыть от индексации список категорий по Вашему рецепту получается, что нужно обернуть функцию вывода категорий следующим образом:
<span class="external-reference" data-link="<?php wp_list_categories() ?>"></span>
Как легко догадаться, оборачивается в span сначала заголовок, т.е. слово «Рубрики» и только потом сами ссылки. Естественно ничего из-за этого не работает. В чём подвох, как вы этого избежали?
Стас, видимо у Вас заголовок «Рубрики» является еще и ссылкой, т.е. в нем присутствует тег «a», иначе ничего бы не оборачивалось в span.
Вывожу стандартным запросом php wp_list_categories() правда посмотрев инспектор кода увидел, что в сайдбаре почему-то заголовок Рубрики, обрамлён тегом li , вообще не пойму от чего, а можно как-то избавиться вообще от заголовка рубрики?
Заголовок можно убрать. Вот почитайте про параметры функции wp_list_categories().
Может кому пригодится. Вообщем крутил и так и этак и ничего у меня не получалось. Применил следующее средство и всё получилось. Как это работает понять не трудно.В файле function.php вносим следующее изменение
add_action('wp_footer', 'add_scripts'); // приклеем ф-ю на добавление скриптов в футер
function add_scripts() { // добавление скриптов
if(is_admin()) return false; // если мы в админке — ничего не делаем
wp_deregister_script('jquery'); // выключаем стандартный jquery
wp_enqueue_script('jquery','//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js','','',true); // добавляем свой
/*('jquery', get_template_directory_uri().'/js/jquery-2.1.3.js','','',true); // добавляем свой локальный*/
wp_enqueue_script('bootstrap', get_template_directory_uri().'/js/bootstrap.min.js','','',true); // бутстрап
wp_enqueue_script('main', get_template_directory_uri().'/js/main.js','','',true); // и скрипты шаблона
}
На всё не смотрим, саое главное для нас, подключить отдельный файл main.js и уже в него прописав код
$('.external-reference').replaceWith (function (){return'<a onclick="return !window.open(this.data-link)" data-link="'+$(this).data ('link')+'" title="'+$(this).text ()+'">'+$(this).html ()+'</a>';})
У меня всё заработало, почему не заработала вставка яваскрипта прамо из футера, для меня, загадка, видимо что-то с шаблоном.
Хорошо написано. Полезная информация.
Здравствуйте, Виталий. Не могли бы Вы подсказать, как Вы установили код счетчика от mail.ru? Просто, в меню редактирования счетчика, самый короткий вариант, предлагаемый для установки, выглядит следующим образом:
<!—
Rating@Mail.ru
counter —><script type="text/javascript">
var _tmr = window._tmr || (window._tmr = []);
_tmr.push({id: "2804564", type: "pageView", start: (new Date()).getTime()});
(function (d, w, id) {
if (d.getElementById(id)) return;
var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id;
ts.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//top-fwz1.mail.ru/js/code.js";
var f = function () {var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s);};
if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); }
})(document, window, "topmailru-code");
</script><noscript><div style="position:absolute;left:-10000px;">
<img src="
//top-fwz1.mail.ru/counter?id=2804564;js=na
" style="border:0;" height="1" width="1" alt="Рейтинг@Mail.ru" /></div></noscript>
<!— //
Rating@Mail.ru
counter —>Юлия, у меня стоит не код счетчика, а информер того, что сайт добавлен в каталог mail.ru.
Кстати надо его давно уже убрать.
Виталий, а почему вы на своем блоге отказались от использования описанного вами метода в статье по закрытию сквозных ссылок в меню?
Ничего я не отказывался.
Виталий, здравствуйте!
Не могу найти достоверную информацию про Файлы Sitemap для изображений для WP.
У вас есть такая статья на болге? Если нет, подскажите, как вы это реализовали?
При всём этом я не планирую использовать плагины ни Плагин All in One SEO Pack ни Yoast. Стараюсь всё делать руками. Хотя на Yoaste вроде бы есть такая функция.
заранее спасибо за ответ!
Здравствуйте!
Алекс, я не добавляю изображения в sitemap.
Вот почитайте эту статью. В настройках плагина есть возможность добавлять медиафайлы.
Виталий, да, я многие ваши статьи уже перечитал и буду читать дальше) Но дело в том, что я стараюсь всё делать без плагинов и плагин All in Seo никак не входит в мои планы, поэтому и статья на которую вы дали ссылку мне не актуальна.
Тогда буду искать оптимальный для меня вариант как сделать Sitemap для изображений)
Спасибо за ответ!
Есть подозрения что сегодня это всё по барабану. Есть ли примеры, что скрытие сквозных меню и сайдбаров что-то даёт?
Добрый вечер! Подскажите, а если метки из облака меток открыты для индексации, возможно какое-то плохое влияние их на сайт после добавления в сайдбар и надо ли их тоже закрывать в этом случае? Через 10 дней после добавления облака меток, позиции сайта значительно просели, вот думаю, проблема в этом или обновление алгоритма, как раз совпавшее с падением 1.06.18. По идее внутренних страниц на страницах сайта стало в 2 раза больше, вес распылился…
Да, думаю облако меток также надо закрывать.
Как и оказалось, облако меток дало проседание. Правда я его пока убрал и удалил все метки, не могу понять что я от них хочу, позиции почти вернулись на прошлый уровень.
В статье вы пишите, что закрытые категории крадут вес. Неделю назад решил закрыть у себя категории в ноуиндекс, фоллоу, по примеру одного кулинарного сайта и буквально через 2 дня начало сильное падение позиций. То есть по ходу это таки доказывает ваши слова, правда непонятны 2 момента. Первый, это как-то яндекс быстро отреагировал, но в сохранённой копии уже были новые страницы, так что наверное это так и есть. Второе, почему тогда на том кулинарном сайте так всё хорошо? В урле статей нет категорий, там домен и статья, но не могут же статьи идти напрямую к главной, минуя категории?
Статьи не могут идти на прямую, а статический вес может.
Почему на одном сайте все хорошо а на другом все плохо я не знаю, на это может влиять множество факторов.