Tutorial: Autogenerar un enlace acortado al crear un nuevo post [WP+Bit.ly]

Lopezito Seguir

Zeta
Diseñador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
13 Dic 2011
Mensajes
1.515
N757J4L.png

Qué tal gente.
Éste se podría considerar como una continuación al tutorial que he creado con anterioridad a éste.

Es similar la función, pero solo que trabajaremos con la API de Bit.ly, ¡comencemos!.

separador.png

Tutorial:

1- Dentro del archivo functions.php de nuestro tema/theme agregaremos el siguiente código(dentro de las etiquetas PHP):

PHP:
/*Crear un enlace acortado con bit.ly cuando se crea el post*/

function bitlyurl($url,$login,$apikey,$format = 'json',$version = '2.0.1'){
$bitly = 'http://api.bit.ly/shorten?version='.$version.'&longUrl='.urlencode($url).'&login='.$login.'&apiKey='.$apikey.'&format='.$format;
$response = file_get_contents($bitly);	
if(strtolower($format) == 'json'){
$json = @json_decode($response,true);
return $json['results'][$url]['shortUrl'];
}else{
$xml = simplexml_load_string($response);
return 'http://bit.ly/'.$xml->results->nodeKeyVal->hash;
}
}
function enlaceacortadobitly($post_id, $post){
$meta = get_post_meta($post_id,'bitlyurl',TRUE);
if(isset($post->post_status) && 'auto-draft' == $post->post_status){return;}
if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){return;}
if(!wp_is_post_revision($post_id)){
if($meta != '') {
return;
}else{
update_post_meta($post_id,'bitlyurl',bitlyurl(get_permalink($post_id),'user','key','json'));
}
}
}
add_action('save_post','enlaceacortadobitly');

2- Editamos la siguiente parte del código:

PHP:
bitlyurl(get_permalink($post_id),'user','key')

2.a- En "user" ponemos nuestro username de bit.ly
2.b- En "key" ponemos nuestra API Key que podemos encontrar en nuestra cuenta de bit.ly


3- Guardamos y creamos un nuevo post de prueba.

separador.png


¡Enhorabuena! así de sencillo.


separador.png


Bonus: Puedes agregar la url donde quieras llamando a la meta "bitlyurl" de la siguiente manera:

PHP:
<?php
if(get_post_meta(get_the_ID(),'bitlyurl',true)){
echo get_post_meta(get_the_ID(),'bitlyurl',true);
}
?>
Bonus 2: Si queres agregar algo por si no existe el enlace acortado, puedes hacerlo de la siguiente manera:

PHP:
<?php
if(get_post_meta(get_the_ID(),'bitlyurl',true)){
echo get_post_meta(get_the_ID(),'bitlyurl',true);
}else{
//Ups! parece que no se ha encontrado el enlace acortado
echo get_permalink(get_the_ID());
}
?>

Bonus 3: Activar los campos personalizados o meta posts, en tu editor.

b6HFBDw.png

Bonus 4: Enlace de compartir en Facebook y Twitter, con el enlace acortado.

¡Y si te gusto, recuerda compartirlo, darle like/me gusta, twittearlo, recomendarlo, comentar, etc!

separador.png

Un saludo!

Nota: Apenas entras al editor de post y se genera el enlace, y si quieres cambiarlo solo debes tener activo la opción de "campos personalizados" en la página del editor para cambiar el valor del meta "bitlyurl".

Fuentes consultadas:

Plugin API/Action Reference/save post « WordPress Codex
Function Reference/get post meta « WordPress Codex
Function Reference/update post meta « WordPress Codex
http://codex.wordpress.org/Function_Reference/get_posts
http://codex.wordpress.org/Function_Reference/$post
http://davidwalsh.name/bitly-php
 
Última edición:

Mcalderon

Zeta
Hospedaje
Verificación en dos pasos activada
Desde
27 Abr 2011
Mensajes
1.968
Esto pone los enlaces de adfly en las entradas o como? D: Seria bueno que colocaras caps :encouragement:
 

Lopezito

Zeta
Diseñador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
13 Dic 2011
Mensajes
1.515
Esto pone los enlaces de adfly en las entradas o como? D: Seria bueno que colocaras caps :encouragement:

Es Bitly no adfly :distant:

Buen tutorial :encouragement:

Jaja, lanzé 2 tutos similares, uno de Adfly y otro de Bitly.

Es fácil, se autogeneran los enlaces mediante el uso de la API del servicio, para que luego vos puedas usarlos en botones para compartir o como para mostrar enlaces acortados que se pueden usar, o para lo que se te ocurra.

Pero bueno, como funcionan los 2, se te va a mostrar en el editor de posts esos enlaces generados, de la siguiente manera:

nwO3gLx.png


Un saludo.
 

webbber

Préstamo
Xi
Redactor
Desde
5 Jul 2010
Mensajes
4.461
tienes un demo o screenshot del panel de WP o como usar los campos personalizados?

---------- Post agregado el 15-jun-2014 hora: 21:14 ----------

sorry, no habia visto el mensaje anterior. ahora lo que busco es que esa URL acortada sea usada en los botones sociales para compartir el contenido.
 

Lopezito

Zeta
Diseñador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
13 Dic 2011
Mensajes
1.515
tienes un demo o screenshot del panel de WP o como usar los campos personalizados?

---------- Post agregado el 15-jun-2014 hora: 21:14 ----------

sorry, no habia visto el mensaje anterior. ahora lo que busco es que esa URL acortada sea usada en los botones sociales para compartir el contenido.

PHP:
<?php
if(get_post_meta(get_the_ID(),'bitlyurl',true)){
$linkshare = get_post_meta(get_the_ID(),'bitlyurl',true);
}else{
//Ups! parece que no se ha encontrado el enlace acortado
$linkshare = get_permalink(get_the_ID());
}
?>


https://www.facebook.com/sharer/sharer.php?u=<?php echo $linkshare; ?>
http://twitter.com/intent/tweet?text=<?php echo $linkshare; ?>
 

webbber

Préstamo
Xi
Redactor
Desde
5 Jul 2010
Mensajes
4.461
y que pasa si uso el servicio de bitly con mi dominio propio de modo que las urls que genera el servcio son del tipo : miblog.com/144f4D por ejemplo.

Esta funcion que agregas general la misma url? o general una URL de bitly.com ? espero explicarme.
 

jesus614

VIP
Zeta
Hospedaje
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
19 Dic 2013
Mensajes
1.661
N757J4L.png

Qué tal gente.
Éste se podría considerar como una continuación al tutorial que he creado con anterioridad a éste.

Es similar la función, pero solo que trabajaremos con la API de Bit.ly, ¡comencemos!.

separador.png

Tutorial:

1- Dentro del archivo functions.php de nuestro tema/theme agregaremos el siguiente código(dentro de las etiquetas PHP):

PHP:
/*Crear un enlace acortado con bit.ly cuando se crea el post*/

function bitlyurl($url,$login,$apikey,$format = 'json',$version = '2.0.1'){
$bitly = 'http://api.bit.ly/shorten?version='.$version.'&longUrl='.urlencode($url).'&login='.$login.'&apiKey='.$apikey.'&format='.$format;
$response = file_get_contents($bitly);
if(strtolower($format) == 'json'){
$json = @json_decode($response,true);
return $json['results'][$url]['shortUrl'];
}else{
$xml = simplexml_load_string($response);
return 'http://bit.ly/'.$xml->results->nodeKeyVal->hash;
}
}
function enlaceacortadobitly($post_id, $post){
$meta = get_post_meta($post_id,'bitlyurl',TRUE);
if(isset($post->post_status) && 'auto-draft' == $post->post_status){return;}
if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){return;}
if(!wp_is_post_revision($post_id)){
if($meta != '') {
return;
}else{
update_post_meta($post_id,'bitlyurl',bitlyurl(get_permalink($post_id),'user','key','json'));
}
}
}
add_action('save_post','enlaceacortadobitly');

2- Editamos la siguiente parte del código:

PHP:
bitlyurl(get_permalink($post_id),'user','key')

2.a- En "user" ponemos nuestro username de bit.ly
2.b- En "key" ponemos nuestra API Key que podemos encontrar en nuestra cuenta de bit.ly


3- Guardamos y creamos un nuevo post de prueba.

separador.png


¡Enhorabuena! así de sencillo.


separador.png


Bonus: Puedes agregar la url donde quieras llamando a la meta "bitlyurl" de la siguiente manera:

PHP:
<?php
if(get_post_meta(get_the_ID(),'bitlyurl',true)){
echo get_post_meta(get_the_ID(),'bitlyurl',true);
}
?>
Bonus 2: Si queres agregar algo por si no existe el enlace acortado, puedes hacerlo de la siguiente manera:

PHP:
<?php
if(get_post_meta(get_the_ID(),'bitlyurl',true)){
echo get_post_meta(get_the_ID(),'bitlyurl',true);
}else{
//Ups! parece que no se ha encontrado el enlace acortado
echo get_permalink(get_the_ID());
}
?>

Bonus 3: Activar los campos personalizados o meta posts, en tu editor.

b6HFBDw.png

Bonus 4: Enlace de compartir en Facebook y Twitter, con el enlace acortado.

¡Y si te gusto, recuerda compartirlo, darle like/me gusta, twittearlo, recomendarlo, comentar, etc!

separador.png

Un saludo!

Nota: Apenas entras al editor de post y se genera el enlace, y si quieres cambiarlo solo debes tener activo la opción de "campos personalizados" en la página del editor para cambiar el valor del meta "bitlyurl".

Fuentes consultadas:

Plugin API/Action Reference/save post « WordPress Codex
Function Reference/get post meta « WordPress Codex
Function Reference/update post meta « WordPress Codex
http://codex.wordpress.org/Function_Reference/get_posts
http://codex.wordpress.org/Function_Reference/$post
http://davidwalsh.name/bitly-php

Hola amigo, como hago para recortar automáticamente todos los post pero con adfly, hacerlo sin full page scripts, que me acosté las url de cada post, con la api, es que el fullpage scripts me es incompatible con otro código pero si los acortó manual si me sirve, entonces esta puede ser mi solución
 

madrid32

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
8 Sep 2014
Mensajes
33
Os recomiendo usar un autocortador de URLs pues al hacer uso de un servicio externo, cualquier dia (puede ser hoy) pueden cambiar las políticas de uso y meteros un banner entre medias o un timer...O dejar de existir.
Basar vuestro modelo de negocio en Facebook, youtube, Blogger es un suicidio colectivo, estais a expensas de que cualquier dia moneticen a vuestra costa o usen vuestro servicio (links internos vuestros) para mostrarle banners a vuestros usuarios.

Mejor usad clockeadores internos, Google:Short URL wordpress
 

markosc

Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Ago 2010
Mensajes
168
hermoso tuto que lo estaba buscando, ¿conocen como se puede hacer tu propio bit.ly? lo que pasa es que el bit.ly gratuito me a pasado que la url no se dirigía a la pagína si no a otra web y supongo que será por el tema que es gratuito
 
Arriba