Dobrovoi Master
сделано с душой
В состоянии постоянного подключения...

Короткие URL от bit.ly для записей в WordPress

Короткие URL от bit.ly для записей в WordPress

Здравствуйте!
Короткие для ваших записей, это не блажь и не очередной наворот, это норма, даже если хотите необходимость, учитывая все возрастающую популярность микро-блогинга, где паровозом выступает всем известный Twitter. Не будем останавливаться на сферах использования укороченных , пригодиться они могут в разных ситуациях, будь то комментирование статей или же при общении в соц-сетях и форумах.
Сегодня расскажу, как можно с помощью спец-сервиса, в данном случае мы будем использовать bit.ly, без особого напряга организовать систему коротких ссылок в , с возможностью вывода непосредственно в записях, в любом удобном для вас месте.
 
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, и уверен, этот маленький «хак», о котором я написал сегодня, не будет казаться вам чем-то сложным и непостижимым.

Всего комментариев: 6

  • Nurlan: 9 апреля, 2013 в 12:07

    Рекомендую пересмотреть весь код. Почти уверен, что где в коде ошибка. Код не работает. Сразу после вставки второго кода сломался сайт.

    Ответить
    • driver: 9 апреля, 2013 в 12:31

      Все прекрасно работает. Пожалуйста не вводите ни меня не читателей в заблуждение. Наглядный пример того, вы можете наблюдать в конце каждой записи.
      Сразу после вставки второго кода сломался сайт
      Конечно сломается, если пытаться делать сохранение после вставки каждой части по отдельности. Необходимо сначала без ошибок, целиком добавить всю функцию в файл function.php, а уже потом сохраняться.

      Ответить
  • Nurlan: 9 апреля, 2013 в 13:23

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

    Ответить
    • driver: 9 апреля, 2013 в 14:28

      Проверьте еще раз правильно ли скопировался код, такое бывает, пропустили запятую или слеш и все — вылазит косяк )))
      Уверен все у вас получится.

      Ответить
  • MasterPRO: 17 апреля, 2013 в 16:02

    Проверяй не проверяй, а сайт «съезжает». Проще и без заморочек с кучей кода дать ссылку на короткий код с помощью tinyurl, как здесь, в конце поста: (Короткая ссылка: tinyurl.com/cuu37o5)

    Ответить
    • driver: 17 апреля, 2013 в 21:22

      У меня ведь не «съезжает» ни сайт, ни крыша. Код один в один как в статье.
      Для вас проще вручную с помощью tinyurl, здесь же рассматривается метод подмены функции укорачивания ссылок самого WP.
      А проверять можно и нужно и не раз, работая на прямую с файлами темы и движка, мы люди, и нам свойственно ошибаться.
      Решение рабочее и прекрасно справляется со своей задачей на сотнях, а может быть уже и тысячах блогах

      Ответить

Оставить комментарий

Ваш email не будет опубликован.

Вы можете использовать следующие HTML тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>