Короткие URL от bit.ly для записей в WordPress
Здравствуйте!
Короткие ссылки для ваших записей, это не блажь и не очередной наворот, это норма, даже если хотите необходимость, учитывая все возрастающую популярность микро-блогинга, где паровозом выступает всем известный Twitter. Не будем останавливаться на сферах использования укороченных url, пригодиться они могут в разных ситуациях, будь то комментирование статей или же при общении в соц-сетях и форумах.
Сегодня расскажу, как можно с помощью спец-сервиса, в данном случае мы будем использовать bit.ly, без особого напряга организовать систему коротких ссылок в WordPress, с возможностью вывода непосредственно в записях, в любом удобном для вас месте.
Wordpress движок продуманный и конечно имеет базовые функции формирования коротких ссылок, по-умолчанию любой пост имеет ссылку вида http://вашсайт/?p=21, где 21 — это ID записи, сколько не изменяйте структуру ссылок, все равно ваши записи останутся доступны по ссылкам такого вида. Если нужно вывести сокращенную ссылку на пост, созданную на основе встроенной в WordPress функции, то используется: < ?php the_shortlink(); ?>
.
Существуют и специализированные плагины WP, для создания укороченных url. Если не особо горите желанием ковыряться в функциях и кодах шаблона, то стоит присмотреться к плагину URL Shortener, который с легкостью поможет вам организовать перевод обычных ссылок в укороченные.
Не всех устраивает использование базовых функций WP, да и загромождение движка плагинами, не всегда есть хорошо, в плане скорости, производительности и нагрузок на сервер. Так что давайте рассмотрим еще один альтернативный способ создания коротких ссылок с использованием сервиса bit.ly.
Надеюсь с bit.ly все знакомы, если нет, то пожалуй и читать дальше нет смысла, так как работать будем именно с этим сервисом для сокращения ссылок. Для начала необходимо заиметь зарегистрированный аккаунт в bit.ly и получить API KEY — ваш ключ программного интерфейса приложения. Ваш логин и api key будут играть ключевую роль в функции автоматического создания коротких ссылок при добавлении новых записей.
Чтобы подключить к работе в блоге WP программный интерфейс bit.ly, необходимо внести некоторые изменения в файл function.php
вашей темы, а конкретнее добавить следующую функцию:
add_action('publish_post', 'create_bitly'); function create_bitly($postID) { global $wpdb; $login = 'YOUR LOGIN'; // изменить на свой логин $apikey = 'YOUR API KEY'; // вписать свой API key $longURL = get_permalink($postID); // здесь мы получаем постоянную ссылку на свой пост // Это вызов API для выборки сокращения URL $apiurl = 'http://api.bit.ly/v3/shorten?longUrl='.urlencode($longURL).'&login='.$login.'&apiKey='.$apikey; // Используем cURL $curl = curl_init(); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_URL, $apiurl); $results = json_decode(curl_exec($curl)); curl_close($curl); $shortURL = $results->data->url; // краткий URL update_post_meta($postID, 'bitlyURL', $shortURL); //добавляем короткий URL с именем bitlyURL в поле записи } |
Для большей ясности, вписал небольшие пояснения.
Чтобы полностью подменить базовую функцию WP создания коротких ссылок в голове html страницы записи, которые вы можете наблюдать в разделе тега head, вашим новым коротким url, и сделать этот процесс на полном автомате. Все в тот же файл вашей темы function.php
добавляем следущее:
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 ); // удаление укороченных ссылок по умолчанию add_action( 'wp_head', 'bilty_shortlink_head'); // добавление новых укороченных ссылок от bit.ly function bilty_shortlink_head() { global $post; $shortURL = get_post_meta($post->ID, 'bitlyURL', true); if(!empty($shortURL)) { echo '<link rel="shortlink" href="'.$shortURL.'" />'."\n"; } else { echo '<link rel="shortlink" href="'.get_bloginfo('url').'?p='.$post->ID.'" />'."\n"; } } |
По большому счету это все, остается подсказать WP показывать ваши новые короткие URL, Вы можете сделать это используя `wp_get_shortlink () `
функцию, добавив фильтрование этой самой функции:
add_filter('pre_get_shortlink', 'get_bitly_shortlink'); // добавляем фильтрование WP функции function get_bitly_shortlink() { global $post; $shortURL = get_post_meta($post->ID, 'bitlyURL', true); if(!empty($shortURL)) { return $shortURL; } else { return get_bloginfo('url').'?p='.$post->ID; } } |
Завершающим аккордом всех наших манипуляций будет сам вывод сокращенных ссылок непосредственно в теле записей, в начале или в конце, это уж кого как вставит. Для этого внесем коррективы в файл single.php вашей темы, там где по вашему разумению и непреодолимому желанию, должны являться народу укороченные ссылки на запись, вставляете следующее:
Короткий URL: <a href="<?php echo wp_get_shortlink($post->ID); ?>" title="< ?php the_title(); ?>">< ?php echo wp_get_shortlink($post->ID); ?></a> |
На этом все, таким вот нехитрым способом, вы предоставите своим читателям возможность лицезреть, а в последствии при необходимости и использовать, укороченные ссылки на ваши записи с помощью сервиса bit.ly. Есть ли от этого польза, каждый волен решать сам, было бы предложено, а там……
Кстати, на этом блоге используется именно такой метод сокращения ссылок. Идеей и техническим решением, со всей интернет-братией поделился Bavota San.
Если вы ведете свой блог на WordPress и вы хотите узнать что-то новое об этом популярном движке, советую посетить очень интересный тематический блог о wordpress, и уверен, этот маленький «хак», о котором я написал сегодня, не будет казаться вам чем-то сложным и непостижимым.
Рекомендую пересмотреть весь код. Почти уверен, что где в коде ошибка. Код не работает. Сразу после вставки второго кода сломался сайт.
Все прекрасно работает. Пожалуйста не вводите ни меня не читателей в заблуждение. Наглядный пример того, вы можете наблюдать в конце каждой записи.
Сразу после вставки второго кода сломался сайт
Конечно сломается, если пытаться делать сохранение после вставки каждой части по отдельности. Необходимо сначала без ошибок, целиком добавить всю функцию в файл function.php, а уже потом сохраняться.
И в мыслях не было вводить кого-то в заблуждения. Пробовал и целиком вставлять. И обернул отдельно в в итоге получил крякобразы на сайте.
Проверьте еще раз правильно ли скопировался код, такое бывает, пропустили запятую или слеш и все — вылазит косяк )))
Уверен все у вас получится.
Проверяй не проверяй, а сайт «съезжает». Проще и без заморочек с кучей кода дать ссылку на короткий код с помощью tinyurl, как здесь, в конце поста: (Короткая ссылка: tinyurl.com/cuu37o5)
У меня ведь не «съезжает» ни сайт, ни крыша. Код один в один как в статье.
Для вас проще вручную с помощью tinyurl, здесь же рассматривается метод подмены функции укорачивания ссылок самого WP.
А проверять можно и нужно и не раз, работая на прямую с файлами темы и движка, мы люди, и нам свойственно ошибаться.
Решение рабочее и прекрасно справляется со своей задачей на сотнях, а может быть уже и тысячах блогах