Vínculo para "fijarlo" en Pinterest sin generar un botón


116

Tengo una página con decenas o cientos de publicaciones, cada una con botones sociales. Simplemente no puedo generar todos los botones para cada URL: es demasiado lento (facebook, g +, twitter, pinterest ... para cientos de enlaces). Entonces, en lugar de generar el botón para compartir de Facebook sobre la marcha, utilizo una imagen simple que apunta

https://www.facebook.com/sharer.php?u=${url_of_current_post}&t=

Cuando el usuario hace clic en él, se abre una ventana emergente con contenido generado por Facebook.

¿Cómo puedo hacerlo para Pinterest? Solo encuentro un código para generar el botón, pero me gustaría evitar js si es posible. ¿Hay algo como lo siguiente?

http://pinterest.com/pinthis?url=${url_of_current_post}

Por favor, no intente hacerme usar el botón js, gracias.

Respuestas:


183

El código estándar del botón de Pinterest (que puede generar aquí ) es una <a>etiqueta que envuelve un <img>botón de Pinterest.

Si no incluye el pinit.jsscript en su página, esta <a>etiqueta funcionará "como está". Puede mejorar la experiencia registrando su propio controlador de clics en estas etiquetas que abre una nueva ventana con las dimensiones adecuadas, o al menos agregando target="_blank"a la etiqueta para que abra clics en una nueva ventana.

La sintaxis de la etiqueta se vería así:

<a href="http://pinterest.com/pin/create/button/?url={URI-encoded URL of the page to pin}&media={URI-encoded URL of the image to pin}&description={optional URI-encoded description}" class="pin-it-button" count-layout="horizontal">
    <img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" />
</a>

Si el uso de las versiones JavaScript de los botones para compartir está arruinando los tiempos de carga de su página, puede mejorar su sitio utilizando métodos de carga asincrónicos. Para ver un ejemplo de cómo hacer esto con el botón de Pinterest, consulte mi proyecto de botón de Pinterest de GitHub con una sintaxis HTML5 mejorada .


3
Gran respuesta, gracias! También consulte nuestra página en developer.pinterest.com, aquí: developers.pinterest.com/pin_it
Kent Brewster

El constructor de widgets Pin It business.pinterest.com/widget-builder/#do_pin_it_button también es útil para obtener un código de muestra que luego puede personalizar mediante programación.
William Denniss

6
@KentBrewster - Por lo que vale, terminé aquí con la misma pregunta después de visitar su página. La información que tiene es excelente, pero no habla de los parámetros de la URL o de que la URL se puede usar sin javascript (en el contexto de la creación de botones sobre la marcha) como hacen las páginas equivalentes de Facebook y Twitter.
xr280xr

Mi urlencode en la descripción es un poco chiflado. ¿Alguna idea de por qué? Ejemplo: "En este punto, simplemente voy a copiar y pegar desde otra publicación porque ya es hora". - obviamente menos que ideal.
Imperativo

2
La respuesta anterior funciona bien si el usuario ya inició sesión en Pinterest; de lo contrario, permanecerá en la página de inicio de Pinterest incluso después de iniciar sesión correctamente. ¿Alguna solución?
Uday

69

Si desea crear un hipervínculo simple en lugar del botón anclarlo,

Cambia esto:

http://pinterest.com/pin/create/button/?url=

A esto:

http://pinterest.com/pin/create/link/?url=

Entonces, una URL completa podría verse así:

<a href="https://stackoverflow.com//pinterest.com/pin/create/link/?url=http%3A%2F%2Fwww.flickr.com%2Fphotos%2Fkentbrew%2F6851755809%2F&media=http%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">Pin it</a>


2
Prefiero hacer mis propios enlaces. ¿Sigue funcionando o lo han cambiado?
nouveau

6
La respuesta aceptada generará un botón si tiene otro botón de pinterest (y el script pinit.js cargado). Cambiar la URL para que tenga 'enlace' en lugar de 'botón' le permitirá tener un botón de pinterest en su pie de página y un enlace de pinterest personalizado en algún lugar de su página. Esta debería ser la respuesta aceptada.
ashack

1
Gracias por tu respuesta, exactamente lo que estaba buscando. Esta debería ser la respuesta correcta en mi opinión :)
patricia

3
Me upvoted esta respuesta, pero más tarde descubrí que Pinterest lanza un error al intentar pin: Parameter 'method' (value link) is not one of unknown, uploaded, scraped, bookmarklet, email, iphone, button, ipad, android, android_tablet, api_sdk, extension, api_other, bad.. La solución es mantener la URL como, buttonpero ignorar el script de pinterest. ver stackoverflow.com/a/15035520/440646
descansando

1
no arroja un error a partir de ahora: P usando como un enlace para compartir de lista de propiedades:http://pinterest.com/pin/create/link/?url=URL&media=COVERIMAGE&description=ADDRESS
Jeannie

6

Tenía la misma pregunta. ¡Esto funciona muy bien en Wordpress!

<a href="https://stackoverflow.com//pinterest.com/pin/create/link/?url=<?php the_permalink();?>&amp;description=<?php the_title();?>">Pin this</a>


2

Encontré un código para wordpress:

 <script type="text/javascript">

    function insert_pinterest($content) {
        global $post;
        $posturl = urlencode(get_permalink()); //Get the post URL
        $pinspan = '<span class="pinterest-button">';
     $pinurl = '';
     $pinend = '</span>';
        $pattern = '//i';
        $replacement = $pinspan.$pinurl.'$2.$3'.$pindescription.$pinfinish.''.$pinend;
        $content = preg_replace( $pattern, $replacement, $content );
        //Fix the link problem
        $newpattern = '/<span class="pinterest-button"><\/a><\/span><\/a>/i';
     $replacement = '';
     $content = preg_replace( $newpattern, $replacement, $content );
     return $content;
    }
    add_filter( 'the_content', 'insert_pinterest' );

    </script>

Luego pones lo siguiente en tu PHP:

<?php $pinterestimage = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' ); ?>
<a href="http://pinterest.com/pin/create/button/?url=<?php echo urlencode(get_permalink($post->ID)); ?>&media=<?php echo $pinterestimage[0]; ?>&description=<?php the_title(); ?>">Pin It</a>

2

Entonces, ¿quieres el código para el botón pin it sin instalar el botón? Si es así, simplemente pegue este código en el lugar de la URL de la página desde la que está fijando. Debería funcionar como un botón pin it sin el botón.

javascript:void((function(){var%20e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('charset','UTF-8');e.setAttribute('src','http://assets.pinterest.com/js/pinmarklet.js?r='+Math.random()*99999999);document.body.appendChild(e)})());


1
Esto funcionó para mí, pero 2 preguntas. ¿Cómo puede mantener la ventana emergente? Además, ¿qué hacen las matemáticas aleatorias?
Pat

Es el código oficial de Pinterest de su 'bookmarklet'. Normalmente se usa como un enlace que guarda en sus marcadores y puede hacer clic en cualquier sitio web que visite para abrir un diálogo de Pinterest, pero también funciona bien de esta manera y es fácil de implementar.
ConorLuddy

1
De manera bastante específica, le dicen que no haga esto en los documentos de la API. Solo porque puedas, no significa que debas hacerlo.
Imperativo

0

Puede crear un enlace personalizado como se describe aquí usando un pequeño script jQuery

$('.linkPinIt').click(function(){
    var url = $(this).attr('href');
    var media = $(this).attr('data-image');
    var desc = $(this).attr('data-desc');
    window.open("//www.pinterest.com/pin/create/button/"+
    "?url="+url+
    "&media="+media+
    "&description="+desc,"_blank","top=0,right=0,width=750,height=320");
    return false; 
});

esto funcionará para todos los enlaces con clase linkPinItque tienen la imagen y la descripción almacenadas en los atributos de datos HTML 5 data-imageydata-desc

<a href="https%3A%2F%2Fwww.flickr.com%2Fphotos%2Fkentbrew%2F6851755809%2F" 
   data-image="https%3A%2F%2Fc4.staticflickr.com%2F8%2F7027%2F6851755809_df5b2051c9_b.jpg" 
   data-desc="Title for Pinterest Photo" class="linkPinIt">
    Pin it!
</a> 

mira este ejemplo de jfiddle

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.