Социальные сервисы и короткие ссылки для WordPress

20 февраля 2011. Рубрики: Интернет, Рабочие заметки; автор — Юлия Панина aka Княгиня.

С месяц назад я собралась с духом и решилась прицепить на свой блог кнопки социальных сервисов. Методику честно заимствовала здесь: Shakin.ru (преимущество метода в том, что блог не нагружается лишними плагинами). Ничего хитрого, кнопки ставятся легко, остаётся лишь чуть-чуть подогнать их положение стилями css. Казалось, для полного счастья недостаёт лишь нарисовать собственные уникальные кнопки. Но, как и следовало ожидать, быстро выяснилось, что схема нуждается в мелком допиливании под мой конкретный случай.

После лёгкой косметической притирки выяснилось, что посты с длинными заголовками неудобно добавлять в Твиттер: длина сообщения превышает допустимую. А сообщение состоит из моего имени в Твиттере, названия заметки и ссылки на неё. Причина «недомогания» — длинные названия и длинные ЧПУ, построенные из названий.

Кстати, на сайте автора методики эта проблема тоже присутствует, но ему, видимо, это не мешает. А мне помешало.

Можно, конечно, сокращать названия, но как быть с теми постами, которые написаны и проиндексены поисковиками давно? Принести в жертву? А если не приносить?

Решение было простым: сократить ссылку. В сети полно рецептов, как использовать для постинга в Твиттер сервисы коротких ссылок, но мне это не понравилось. Зачем, если короткие ссылки есть в самом WordPress?

Итак, элементарно: для кнопки Твиттера код

<?php the_permalink(); ?>

заменяется на

<?php echo get_bloginfo('url')."/?p=".$post->ID; ?>

или на

http://site.ru/?p=<?= $post->ID ?>

(как вам больше нравится); так формируется короткая ссылка wordpress. Такая ссылка уместится в твит не хуже короткой ссылки от специального сервиса. У других кнопок можно (по желанию) оставить ЧПУ.

Однако в сети можно найти сетования, что короткая ссылка не работает — выдаёт 404 ошибку. Вот почему-то у меня работает. А почему? Идём в панель управления WordPress: Параметры ? Постоянные ссылки и находим там предупреждение:

Если бы ваш файл .htaccess был доступен для записи, мы могли бы выполнить следующий шаг автоматически, но это не так. Вот правила mod_rewrite, которые должны быть в файле .htaccess. Кликните на поле и нажмите CTRL + a, чтобы выделить весь текст.

И далее код, который надо вставить в .htaccess:

<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</ifmodule>

Что, вы не знаете, что такое .htaccess? Ну, а как же вы сумели вставить себе короткие ссылки от сервисов? Нет уж, если человек ковыряет шаблоны php, то знать про .htaccess — его святой долг.

После обновления .htaccess короткая ссылка начинает работать с 301 редиректом — в точности, как короткие ссылки от сервисов. Пробуйте!

Тестировано на Wordpress 3

Отзывы (5) на «Социальные сервисы и короткие ссылки для WordPress»
  1. Антон (1 комментарий)

    Спасибо. Вставил себе табличку — ссылки на соцсети и короткая ссылка на статью в текстовом поле. Может кому пригодится.

    Кстати я правильно понимаю, что вызов echo get_bloginfo(‘url’) — это лишний запрос к базе и его по возможности лучше не делать?

    • Княгиня (650 комментариев)

      Запрос — да, лишний, а лучше сказать, дополнительный. Делать или не делать — зависит от ситуации. Весь сайт построен на запросах к базе, уменьшение их количества — не самоцель.

  2. Аноним

    [:-} *KISSED* *TIRED* *TIRED* *TIRED* *TIRED*

  3. Dixon1111 (1 комментарий)

    Так твитер же автоматически переписывает и укорачивает ссылки.

    • Юлия Панина aka Княгиня (650 комментариев)

      Сейчас — да. А на момент написания я как раз и столкнулась с тем, что длинная ссылка не влезала в твит.