WordPress: abbreviare gli URL dei post con Bitly

Bitly è un servizio per l'abbreviazione degli URL tra i più popolari. In questo articolo vedremo come utilizzare le API di Bitly per abbreviare gli URL dei nostri post di WordPress.

Per iniziare abbiamo bisogno di un account su Bitly e del token di accesso alle API. Una volta fatto questo possiamo definire la seguente classe:


class BitlyShortener {

	private $_token = 'token di accesso';
	private $_apiURL = 'https://api-ssl.bitly.com/v3/shorten?';
	
	public $url;
	
	public function __construct($uri) {
		$this->url = $uri;
	}
	
	private function _buildURL() {
		$requestURL = $this->_apiURL . 'access_token=' . $this->_token . '&longUrl=' . urlencode($this->url) . '&format=json';
		return $requestURL;
	}
	
	public function shorten() {
		$requestURI = $this->_buildURL();
		$ci = curl_init();
		
		curl_setopt($ci, CURLOPT_USERAGENT, 'Bit.ly Client');
		curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 30);
		curl_setopt($ci, CURLOPT_TIMEOUT, 30);
		curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ci, CURLOPT_HEADER, false);
		curl_setopt($ci, CURLOPT_URL, $requestURI);
		$response = curl_exec($ci);
		
		
		
		curl_close($ci);
		$data = json_decode($response, true);
		
		return $data['data']['url'];
	}

}

La classe può essere inserita sia direttamente nel file functions.php che in un file separato che verrà poi incluso in functions.php tramite la funzione require_once().

Possiamo usare la classe nel nostro tema come segue:


<?php
$url = get_permalink();
$shortener = new BitlyShortener($url);
$short_url = $shortener->shorten();
?>
<a href="<?php echo $short_url; ?>">Short link</a>

Torna su