n-wp.ru — блог о WordPress

Как запретить индексирование внутренних ссылок, создаваемых базовыми функциями и виджетами?

Я переделываю тему одного блога, пытаясь снизить количество индексируемых внутренних ссылок. Если это простая ссылка стандартной конструкции, то никакой трудности подставить в нее rel=»nofollow» нет. Основная же загвоздка заключается в ссылках, создаваемых встроенными функциями.
Например, совершенно не ясно, как сделать неиндексируемой вот такие ссылки:

и другие подобные.
Так же не ясно, как сделать неидексируемыми ссылки, создаваемые виджетами? Например, вот этими: WP_Widget_Pages, WP_Widget_Calendar, WP_Widget_Archives, WP_Widget_Links, и другими.
Я понимаю, что можно разобрать до винтиков default-widgets.php, но все же считаю, что вмешиваться в системные файлы не совсем правильно.
Есть ли какой-нибудь способ сделать ссылки, создаваемые базовыми функциями и виджетами, неиндексируемыми? Может фильтры какие, прописываемые в functions.php?

tiaurus

Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

22 комментария

  • the_author_posts отдает число (кол-во постов автора текущего поста)
    the_category — можно сделать хук
    что-то типа:

    the_tags — тоже самое, только хук на the_tags

    WP_Widget_Pages — хук на wp_list_pages, но немного изменится ф-ция замещения

    для WP_Widget_Calendar:

    для WP_Widget_Archives:

    Где-то так…
    ЗЫ: всё это не проверял, но должно работать
    ЗЗЫ: можно всё это совместить в одну ф-цию и только фильтров напихать

  • Наверняка то же самое можно сделать и для других функций?
    Например, для the_tags работает такое:

    А вот для ссылки на посты автора

    подобное не работает…

    • для
      the_author_posts_link:

      (регэксп отличается)

      • Работает! Премного благодарен!
        А для

        не работает ни первый ни второй способы :(

        • а у этой ф-ции нет хука, но никто не мешает в буфер сохранять что он выводит:

        • а в самой теме вместо comments_popup_link();
          вставить fb_comments_popup_link();

          ЗЫ: я не пробовал, но должно работать; если таки не заработает — попробую, но попозже…

          • В принципе, для comments_popup_link не принципиально — я могу заменить эту функцию просто выводом количества комментариев, а линк и тайтл подставлю вручную:

            А вот что делать с RSS лентами, которые автоматически формирует движок?
            RSS (полн) — /feed
            RSS (сокр) — /feed/rss
            RSS комментариев к посту — например, /2978/feed
            RSS комментариев в блоге — /comments/feed
            В явном виде ссылок на них нет, но при анализе внутренних ссылок на страницах они фигурируют и индексируются.

              • Спасибо, что напомнили! Уже догадался, что в link тоже можно напрямую подставлять nofollow.
                Спасибо еще раз — ваши ответы достойны отдельной статьи на http://n-wp.ru.

                PS. Осталась одна загвоздка — не могу избавиться от индексируемых ссылок в трекбеках/пингах/комментариях. В блоге используется функция wp_list_comments, которую предоставляет сам движок WordPress . Лезть во внутрь движка совсем не хочется, а делать фильтры я не мастер.

                • в теме используйте fb_wp_list_comments вместо wp_list_comments

                  можно сделать через аргумент callback для ф-ции wp_list_comments:
                  http://codex.wordpress.org/Function_Reference/wp_list_comments#Comments_Only_With_A_Custom_Comment_Display

                  там нужно будет скопировать большую часть кода и добавить нофоллоу

  • а в самой теме вместо comments_popup_link();
    вставить fb_comments_popup_link();

    Работает!
    Единственное но. Когда я использовал comments_popup_link, то указывал свои аргументы:

    Это работало — цифры выводились так, как я задумал. В случае с заменой мои параметры не работают — WordPress выводит то, что заложено у него по-умолчанию (1 comm.) .

    • и просто название ф-ции замените

      по поводу рсс позже отвечу

  • А как можно сейчас закрыть обычную исходящую ссылку со страницы? Ведь уже ноуидексы и ноуфолловы не работают? Дело в том, что мне надо , чтобы ещё была спрятана рефссылка. То есть, как закрыть вот такую конструкцию от индексации?