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

Короткие 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, и уверен, этот маленький «хак», о котором я написал сегодня, не будет казаться вам чем-то сложным и непостижимым.

Google Bookmarks News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Вы можете оставить отзыв, подписаться на обновленияОбновления блога по RSSRSS или Обновления блога на TwitterTwitter !

6 комментариев
  1. Nurlan says:

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

    Ответить
    • driver says:

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

      Сразу после вставки второго кода сломался сайт

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

      Ответить
  2. Nurlan says:

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

    Ответить
    • driver says:

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

      Уверен все у вас получится.

      Ответить
  3. MasterPRO says:

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

    Ответить
    • driver says:

      У меня ведь не «съезжает» ни сайт, ни крыша. Код один в один как в статье.

      Для вас проще вручную с помощью tinyurl, здесь же рассматривается метод подмены функции укорачивания ссылок самого WP.

      А проверять можно и нужно и не раз, работая на прямую с файлами темы и движка, мы люди, и нам свойственно ошибаться.

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

      Ответить
Присоединяйтесь к обсуждению!

Отправляя кoммeнтapий, Вы автоматически принимаете правила кoммeнтиpoвaния на этом блоге.

Правила кoммeнтиpoвaния на блоге Dobrovoimaster:

  1. Во избежание захламления спамом, первый кoммeнтapий всегда проходит премодерацию.
  2. В поле "Ваш сайт" лучше указывать ссылку на главную страницу вашего сайта/блога. Ссылки на прочую веб-лабуду (в том числе блоги/сплоги, созданные не для людей) будут удалены.
  3. Не используйте в качестве имени комментатора слоганы/названия сайтов, рекламные фразы, ключевые и т.п. слова. В случае несоблюдения этого условия, имя изменяю на свое усмотрение. Просьба указывать нормальное имя или ник.
  4. Скорее всего, что не информативный и короткий кoммeнтapий вида "Спасибо!", "Интересная статья", будет удален. Исключение составляют знакомые автору блога комментаторы.
  5. Комментарии не по теме безжалостно удаляются.

Подписаться не комментируя

Обновления комментариев по RSS RSS комментариев к этой записи »
Рейтинг@Mail.ru