Мы рассказывали вам как создавать короткие ссылки используя TinyURL и использовать их с текстом для ретвитов. Однако tinyurl не самое лучшее решение по ряду причин. Они не такие короткие, как bit.ly и Tinyurl не предоставляют внушительной статистики в отличие от битли. В этой статье мы покажем вам как автоматически сокращать ссылки ваших записей WordPress, используя Bit.ly API.
Преимущества этого метода
Как только вы внедрите это решение, вам больше не придется заботиться о создании ссылок bit.ly для записей. Как только страница будет загружена, ссылка создастся автоматически. Ссылка будет одна для одной записи, поэтому она никогда не повторится.
Прежде всего вам нужно получить Bit.ly API. Для этого идем на bit.ly и создаем себе аккаунт. Затем просто переходим по этой ссылке: http://bit.ly/a/your_api_key
Сразу после того, как вы получите API, открываем файл functions.php темы и вставляем следующий код:
<?php /* Основано на коде David Walsh – http://davidwalsh.name/bitly-php */ function make_bitly_url($url,$format = 'xml',$version = '2.0.1') { //Вводим данные аккаунта сервиса $bitly_login = 'Здесь должен находиться ваш логин'; $bitly_api = 'Здесь должен находиться ваш ключ API'; //создаем ссылку $bitly = 'http://api.bit.ly/shorten?version='.$version.'&longUrl='.urlencode($url).'&login='.$bitly_login.'&apiKey='.$bitly_api.'&format='.$format; //получаем ссылку $response = file_get_contents($bitly); //парсим в зависимости от необходимого формата if(strtolower($format) == 'json') { $json = @json_decode($response,true); return $json['results'][$url]['shortUrl']; } else //для XML { $xml = simplexml_load_string($response); return 'http://bit.ly/'.$xml->results->nodeKeyVal->hash; } } ?>
**Примечение: Вы должны ввести ваш логин и ключ API.
Затем вам нужно открыть файл single.php темы (или другой, в зависимости от того, где вы хотите отображать короткую ссылку) и вставляем следующий код сразу вначале цикла:
<?php //Проверяем есть ли у записи сокращенная ссылка. if(get_post_meta($post->ID, "short_url", true) != ""){ //Коротая ссылка уже существует, заполняем из данных записи $short_url = get_post_meta($post->ID, "short_url", true); }else{ //Коротая ссылка еще не создана $full_url = the_permalink(); $short_url = make_bitly_url($full_url); //Сохраняем сгенерированную ссылку для последующих просмотров add_post_meta($post->ID, 'short_url', $short_url, true); } ?>
Затем вставляем этот код в любое место в цикл для отображения сокращенной ссылки:
<?php echo $short_url; ?>