Twitter share link

19 June 2011 #twitter #web #wordpress

При разработке шаблона оформления для zendaily я столкнулся с тем, что ссылки поделиться в twitter вдруг в одночасье разом перестали работали. Можно было бы, конечно, использовать обычную кнопку, которую они предоставляют, но конкретно в этом случае она просто не вписывалась в общую концепцию сайта.

В тот момент я использовал ссылку вида:

http://twitter.com/share

и дальше следовал определенный набор параметров, в котором обычно использовался только текст самого твита и ссылка на запись.

Пришлось разбираться и в итоге оказалось, что twitter изменил свой api, сделав его более удобным. Теперь для использования твиттера необходимо использовать ссылку вида:

https://twitter.com/intent/tweet?text=Текст твита&url=http://domain.ru

Более подробно по параметрам можно прочесть на странице dev.twitter.com.

Параметры

  1. url

    С помощью данного параметра передается адрес ссылки, который будет размещен в тексте твита. При этом адрес необходимо передавать в кодированном виде, заменяя спецсимволы на числовые последовательности. Пример такого адреса:

     http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FIn_Watermelon_Sugar
    
  2. via

    С помощью данного параметра указывается, в ответ на сообщение какого пользователя произодиться ретвит. Указывается только имя пользователя без символа @, который будет добавлен автоматически при публикации твита.

  3. text

    Это текст самого твита, который должен быть предварительно подготовлен и закодирован, пробелы заменены или на знак плюса, или на код %20, значки препинания на соответствующие цифровые коды, и т.д.

  4. in_reply_to

    Если во время публикации статьи был создан соответствующий твит, то с помощью данного параметра можно передать его порядковый номер в системе, чтобы можно было в дальнейшем отследить на какое сообщение производился ретвит.

    Пример:

     35782000644194304
    
  5. hashtags

    Данный параметр позволяет добавлять к твиту определенные хештеги, для более быстрого поиска сообщения. Хеш-тэги прописываются без знака #, который будет автоматически добавлен системой при публикации твита.

    Все необходимые тэги перечисляются через запятую:

     twitter,twitterapi
    
  6. related

    Параметр, с помощью которого после публикации твита предлагается следовать за определенными пользователями. Имена пользователей передаются через запятую.

Wordpress

Теперь рассмотрим, каким образом можно создавать свои ссылки в Wordpress для размещения ссылок в твиттере.

В определенном месте шаблона создаем текстовую ссылку, в которой прописываем следующий код:

<a href="https://twitter.com/intent/tweet?text=<?php echo urlencode(get_the_title());?>&amp;url=<?php echo urlencode(get_permalink($post->ID));?>&amp;via=zendaily_ru&amp;hashtags=zendaily&amp;related=juev,zendaily_ru,dmitry_diez" title="Click to share this post on Twitter" rel="nofollow" target="_blank">twitter</a>

Как понятно из объяснения, самый первый пример, который был использован в статье некорректный, просто потому, что ни текст твита, ни адрес ссылки не были преобразованы в требуемый вид. Для того, чтобы это корректно проделать, используется функция urlencode, которая преобразует передаваемый ей текст в соответственную последовательность символов. Не забываем так же символ & записывать с помощью кода &amp;.

В приведенном примере в качестве текста твита используется заголовок статьи, который берется и кодируется с помощью кода:

echo urlencode(get_the_title());

Функция get_the_title() возвращает обычную строку, поэтому после преобразования результат необходимо вывести с помощью функции echo.

Для получения и преобразования ссылки используется код:

echo urlencode(get_permalink($post->ID));

Функция the_permalink() производит вывод ссылки, естественно, что он уже не может быть преобразован, именно поэтому необходимо использовать функцию get_permalink($post->ID) которая возвращает именно строку с адресом текущей статьи.

По остальным параметрам я останавливаться не буду, там просто передаются определенные значения. Единственно рекомендую добавлять к размещаемой ссылку параметр rel="nofollow", для того, чтобы устранить утекание PR с вашего домена.