# Twitter share link

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

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

```text
http://twitter.com/share
```

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

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

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

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

## Параметры

1. **url**

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

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

2. **via**

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

3. **text**

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

4. **in\_reply\_to**

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

    Пример:

    ```text
    35782000644194304
    ```

5. **hashtags**

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

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

    ```text
    twitter,twitterapi
    ```

6. **related**

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

## Wordpress

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

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

```html
<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;`.

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

```bash
echo urlencode(get_the_title());
```

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

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

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

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

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

[1]: http://zendaily.ru
[2]: http://dev.twitter.com/pages/intents

