С месяц назад я собралась с духом и решилась прицепить на свой блог кнопки социальных сервисов. Методику честно заимствовала здесь: 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 комментарий)
Спасибо. Вставил себе табличку — ссылки на соцсети и короткая ссылка на статью в текстовом поле. Может кому пригодится.
Кстати я правильно понимаю, что вызов echo get_bloginfo(‘url’) — это лишний запрос к базе и его по возможности лучше не делать?
Княгиня (660 комментариев)
Запрос — да, лишний, а лучше сказать, дополнительный. Делать или не делать — зависит от ситуации. Весь сайт построен на запросах к базе, уменьшение их количества — не самоцель.
Аноним
Dixon1111 (1 комментарий)
Так твитер же автоматически переписывает и укорачивает ссылки.
Юлия Панина aka Княгиня (660 комментариев)
Сейчас — да. А на момент написания я как раз и столкнулась с тем, что длинная ссылка не влезала в твит.