Тег шаблона wp_list_pages
-
Приветствую всех.
Помогите решить следующую проблему: Необходимо закрыть от индексации гуглом горизонтального меню навигации по отдельным статическим страницам сразу под шапкой блога, для этого требуется в ссылках на страницы прописать параметр rel=»nofollow».
Меню навигации организовано через тег wp_list_pages, в следующем виде:`
<?php wp_list_pages(‘title_li=&depth=1’); ?>
`Нашёл эту функцию в файле post-template.php, но в PHP разбираюсь не очень хорошо, поэтому не смог найти, как именно формируется код самой ссылки на страницу. Подскажите пожалуйста, где и что надо изменить, что бы в конечной ссылке появился параметр rel=»nofollow»?
Заранее благодарен.
-
Можно добавить фрагмент в
functions.php
активной темы:function wp_list_pages_nofollow($output) { return preg_replace('/(href=".*?")/', '$1 rel="nofollow"', $output); } add_filter('wp_list_pages', 'wp_list_pages_nofollow');
Большое спасибо за подсказку, сейчас попробую!
Ещё раз спасибо, функция работает, но не совсем корректно. Так, после вставки фрагмента кода в файл функций темы (functions.php) при попытке редактировать файлы темы, точнее — при попытке сохранить файлы после редактирования (кнопка — обновить файл) движок выдаёт следующее:
Warning: Cannot modify header information — headers already sent by (output started at /home/directma/public_html/evro/wp-content/themes/Estetica/functions.php:333) in /home/directma/public_html/evro/wp-admin/theme-editor.php on line 75
хотя — изменения всё таки сохраняются, и при возврате на предыдущую страницу всё отображается, как надо. Пытался вставить фрагмент кода в самом начале файла функций темы, но тогда ничего не происходит, и изменения не отображаются в исходном коде страницы, попросту — у ссылок нет атрибута rel=»nofollow».
Вопрос такой: можно ли реализовать данную функцию как нибудь изящнее? Допустим — что бы в админ-панели при создании и администрировании статических страниц и новых рубрик стоял пункт nofollow и noindex, и при установленном флажке к ссылкам, ведущим на эти страницы, добавлялись бы эти атрибуты? Или может это возможно сделать через произвольные поля?
Немного дополню предыдущий пост.
У Вордпресса, при всех его неоспоримых достоинствах, есть один существенный недостаток: — при установленных темах и плагинах сайт на его основе похож на линкопомойку: все страницы ссылаются на все страницы, причём — по множеству раз. Можно конечно отключать архивы, по датам, и по тегам, но при этом существенно урезается функциональность. Можно ещё ставить плагины, закрывающие архивы и страницы логина и администрирования от индексации поисковиков, но проблемы это не решает.
Допустим — есть масса статических страниц, например — о сайте, обо мне, контакты, и т.д., которые просто не нуждаются в индексации, потому как — не оптимизированы под релевантные поисковые запросы, и ссылочный вес, переданный им с главной (и с остальных тоже) растрачивается просто в пустую. Это же относится и к архивам — страницы рубрик, например.
Поэтому, что бы построить чёткую ссылочную структуру сайта и блога на основе WordPress — приходится хорошенько поковыряться в движке, вручную закрывая от индексации страницы категорий, статические страницы, и прочие внутренние и внешние ссылки, не заточенные под релевантные запросы, что весьма утомительно. Потому как ни один из опробованных мной плагинов не решает этой проблемы хотя бы наполовину.
1. Функция должна работать независимо от местоположения в
functions.php
. И не должна выдавать ошибку, если правильно её вставить — я проверял.
2. Да, такая реализация возможна. Однако это уже другая задача, больше похожая на создание полноценного плагина.Благодарю за ответ, буду пытаться, экспериментировать.
Боюсь — одним плагином здесь не обойтись, их и так не мало, а задачи не решают даже на половину, все вместе взятые. По моему — проще уж внести дополнения в сам движок, тогда и плагины станут не нужны.Подскажите пожалуйста, куда я могу обратиться с этой идеей, в какую ветку форума? Что бы можно было совместно обсудить и найти решения? т.е. — написать дополнения к движку?
Дополнения к движку — это и есть плагины и темы.
Править сам движок — это плохая идея. Разговор о том, почему это плохая идея, повторяется на этом форуме со стабильной периодичностью.Но «хакер» же не читатель. «Сломать» — и дело с концом. А подумать?
Уважаемый Atrax, а кроме критики и стёба какие нить конкретные и дельные предложения от вас услышать можно? Критиканов вокруг — как грязи. Адекватных предложений и решений — единицы.
Ну так что — стебаться будем, или делом займёмся?
Уважаемый Atrax, а кроме критики и стёба какие нить конкретные и дельные предложения от вас услышать можно?
Можно. Но не запросы вроде «хорошенько поковыряться в движке». Есть более правильные пути — я просто жду, пока вы это поймете.
Мне в сотый раз вам пересказать, что при правке самого движка вы теряете возможность его без потерь обновлять? А не обновляя его — теряете безопасность. Я могу. Но тогда уже и вы не жалуйтесь на стеб и критику.
Такие все умные, а с «Cannot modify header information» справится не могут. ФАК не для вас писали? Скромнее, юноша, а то от таких любителей переписать wordpress скоро не продохнуть будет.
Между прочим, совет вам уже дали. А вы его отмели. Кто виноват? 🙂
Блин, одна полемика, и никакой конкретики. Высказались? Легче стало?
Советом я воспользовался, писал об этом, читайте внимательнее. Спасибо, кстати, Сергею Бирюкову, ЕДИНСТВЕННОМУ, кто дал на данном форуме толковый совет. Всем остальным — только государственными обвинителями работать.
Однако — предложил развить идею, и встроить данную функцию в сам движок, в ВИДЕ ОБНОВЛЕНИЯ СЛЕДУЮЩИХ ВЕРСИЙ (!!!), насчёт «поломать» — никаких предложений не было, потому как и сам знаю, чем это черевато.
Если Вас НЕ устраивает это предложение — то тогда давайте создадим ПЛАГИН, но только — что бы он ПОЛНОСТЬЮ РЕШАЛ ПРОБЛЕМУ ГРАМОТНОГО ПОСТРОЕНИЯ ссылочной структуры сайта или блога на основе WordPress.
Призываю Вас перейти от профессионального обвинительства к конструктивному обсуждению и решению проблемы. А именно: Как должна выглядеть ОПТИМАЛЬНАЯ ссылочная структура сайта, что бы максимально эффективно распределять и аккумулировать ссылочный вес между релевантными страницами, полностью исключая из индекса НЕ релевантные; и как и в каком виде эту структуру можно реализовать — с помощью включения в обновление движка в новых версиях, или с помощью отдельного плагина.
Ну так что — обсудим, или как?
Конечно, обсудим 🙂
предложил развить идею, и встроить данную функцию в сам движок, в ВИДЕ ОБНОВЛЕНИЯ СЛЕДУЮЩИХ ВЕРСИЙ
С этим будет большая проблема. У разработчиков уже давно не такая позитивная реакция на предложения аудитории и глубоко свой путь развития. Поэтому ждать этого от них — все равно, что манны небесной. Отметаем…
давайте создадим ПЛАГИН, но только — что бы он ПОЛНОСТЬЮ РЕШАЛ ПРОБЛЕМУ ГРАМОТНОГО ПОСТРОЕНИЯ ссылочной структуры сайта или блога на основе WordPress
Давайте создадим.
Насколько я понимаю ваши пожелания, вы хотите не уменьшить количество разных ссылок, а убрать с них вес, чтобы его не терять. Если я неправ, поправьте меня, но мне кажется, что, даже при наличии активных ссылок, файл robots.txt выносит из поиска страницы, которые вам не нужны, если их там явно прописать. Плагином ли, ручками — не суть. Это первое решение.
Дальше. Как уже упоминалось, на вывод страниц можно поставить фильтр. Чтобы не «выносить» все подряд, в функции фильтра можно проверять саму ссылку по какому нибудь списку исключений, например. И не ставить nofollow (или наоборот — только им и ставить). Написать плагин, чтобы в админке появлялась страница со списком этих исключений тоже недолго. Это второе решение.
А именно: Как должна выглядеть ОПТИМАЛЬНАЯ ссылочная структура сайта, что бы максимально эффективно распределять и аккумулировать ссылочный вес между релевантными страницами, полностью исключая из индекса НЕ релевантные
Автоматическое решение потребует четкого понимания механизмов индексации, а это территория, на которой я не чувствую себя хоть сколько-нибудь уверенно. Но ничего невозможного нет.
Готовое решение можно попытаться поискать, написать самому или заплатить специалисту. У нас есть для этого специальный форум. Тут все дело в том, что это уже не «совет на форуме», а серьезная работа, которую можно делать только при наличии заинтересованности.
У меня, к сожалению, нет ни времени, ни мотивации этим заниматься, но мне кажется, что указать путь решения проблемы тоже чего-то стоит.
Извините, что вмешиваюсь. А разве нельзя все то закрыть (индексацию) в robots.txt?
Для чёткости и ясности, а так же для привлечения к обсуждению новых участников, предлагаю открыть новую ветку (т.к. эта себя исчерпала), и там уже продолжить обсуждение.
Сейчас создам новую ветку форума, продолжу там. Называться будет — «Создание эффективной ссылочной структуры блога». Насчёт предыдущего поста:
Извините, что вмешиваюсь. А разве нельзя все то закрыть (индексацию) в robots.txt? ?
Фалом robots.txt можно закрывать от ИНДЕКСАЦИИ только ЦЕЛЫЕ СТРАНИЦЫ, к тому же — как я думаю — это не гарантирует запрета передачи внутренними ссылками на эти страницы ССЫЛОЧНОГО ВЕСА, что является ПЕРВООЧЕРЕДНОЙ ЗАДАЧЕЙ, т.е. — страницы НЕ проиндексирована поисковиком, а ссылочный вес по ссылке на неё ПЕРЕДАЛСЯ, в результате — растрачен в пустую.
К тому же — как быть, если страница должна оставаться в индексе, а вот ссылки с неё надо спрятать от поисковиков, но в то же время — что бы они были доступным пользователям (для удобства и функциональности)?
В общем — тема обширная, и требует совместного обсуждения.
Как быть, если страница должна оставаться в индексе, а вот ссылки с неё надо спрятать от поисковиков, но в то же время — чтобы они были доступным пользователям (для удобства и функциональности)?
Можно использовать nofollow как мета-тег.
- Тема «Тег шаблона wp_list_pages» закрыта для новых ответов.