Link a "pin it" su pinterest senza generare un pulsante


116

Ho una pagina con decine o centinaia di post, ognuno con pulsanti social. Non riesco a generare tutti i pulsanti per ogni URL: è troppo lento (facebook, g +, twitter, pinterest ... per centinaia di link). Quindi, al posto del pulsante di condivisione facebook da generare al volo, utilizzo una semplice img che punta a

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

Quando l'utente fa clic su di esso, si apre una finestra popup con il contenuto generato da Facebook.

Come posso farlo per Pinterest? Trovo solo in giro il codice per generare il pulsante, ma vorrei evitare js se possibile. C'è qualcosa di simile al seguente?

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

Per favore, non provare a farmi usare il pulsante js, grazie.

Risposte:


183

Il codice del pulsante Pinterest standard (che puoi generare qui ), è un <a>tag che racchiude un <img>pulsante Pinterest.

Se non includi lo pinit.jsscript nella tua pagina, questo <a>tag funzionerà "così com'è". Potresti migliorare l'esperienza registrando il tuo gestore di clic su questi tag che apre una nuova finestra con dimensioni appropriate, o almeno aggiungendo target="_blank"al tag per farlo aprire clic in una nuova finestra.

La sintassi del tag sarebbe simile a:

<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>

Se l'utilizzo delle versioni JavaScript dei pulsanti di condivisione sta rovinando i tempi di caricamento della pagina, puoi migliorare il tuo sito utilizzando metodi di caricamento asincrono. Per un esempio di questa operazione con il pulsante Pinterest, controlla il mio progetto di pulsanti Pinterest GitHub con una sintassi HTML5 migliorata .


3
Ottima risposta, grazie! Si prega di consultare anche la nostra pagina su developer.pinterest.com, qui: developers.pinterest.com/pin_it
Kent Brewster

Il generatore di widget Pin It business.pinterest.com/widget-builder/#do_pin_it_button è utile anche per ottenere del codice di esempio che è possibile personalizzare successivamente a livello di programmazione.
William Denniss

6
@KentBrewster - Per quello che vale, sono finito qui con la stessa domanda dopo aver visitato la tua pagina. Le informazioni che ha sono tutte ottime, ma non parla dei parametri URL o che l'URL può essere utilizzato senza javascript (nel contesto della creazione di pulsanti al volo) come fanno le pagine equivalenti di Facebook e Twitter.
xr280xr

Il mio urlencode nella descrizione è un po 'strano. Qualche idea sul perché? Esempio: "A questo punto, copierò e incollerò da un altro post perché & amp; # 8230; tempo". - ovviamente meno che ideale.
Imperativo

2
La risposta di cui sopra funziona bene se l'utente ha già effettuato l'accesso a pinterest altrimenti rimane nella home page di pinterest anche dopo aver effettuato l'accesso con successo. Eventuali soluzioni?
Uday

69

Se desideri creare un semplice collegamento ipertestuale invece del pulsante appuntalo,

Cambia questo:

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

A questa:

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

Quindi, un URL completo potrebbe semplicemente assomigliare a questo:

<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
Preferisco di gran lunga creare i miei collegamenti. Funziona ancora o l'hanno cambiato?
nouveau

6
La risposta accettata genererà un pulsante se hai un altro pulsante pinterest (e lo script pinit.js caricato). Cambiare l'URL in modo che abbia "link" invece di "button" ti consentirà di avere un pulsante pinterest nel tuo piè di pagina e un link pinterest personalizzato da qualche parte sulla tua pagina. Questa dovrebbe essere la risposta accettata.
ashack

1
Grazie per la tua risposta, esattamente quello che stavo cercando. Questa dovrebbe essere la risposta giusta secondo me :)
patricia

3
Ho upvoted questa risposta, ma in seguito ha scoperto che Pinterest genera un errore quando si cerca di 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 soluzione è mantenere l'URL come buttonma ignorare lo script di pinterest. vedi stackoverflow.com/a/15035520/440646
riposo il

1
non genera un errore al momento: P utilizzando come collegamento di condivisione dell'elenco di proprietà:http://pinterest.com/pin/create/link/?url=URL&media=COVERIMAGE&description=ADDRESS
Jeannie

6

Ho avuto la stessa domanda. Funziona benissimo in Wordpress!

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


2

Ho trovato del codice per 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>

Quindi inserisci quanto segue nel tuo 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

Quindi vuoi il codice al pulsante pin it senza installare il pulsante? In tal caso, incolla questo codice al posto dell'URL della pagina da cui stai bloccando. Dovrebbe funzionare come un pulsante pin it senza il pulsante.

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
Questo ha funzionato per me, ma 2 domande. Come puoi mantenere il popup? Inoltre, cosa fa la matematica casuale?
Pat

È il codice ufficiale di Pinterest dal loro "bookmarklet". Viene normalmente utilizzato come collegamento che salvi nei tuoi segnalibri e puoi fare clic su qualsiasi sito web che visiti per visualizzare un dialogo Pinterest, ma funziona bene anche in questo modo ed è facile da implementare.
ConorLuddy

1
Ti dicono abbastanza specificamente di non farlo nei documenti dell'API. Solo perché puoi, non significa che dovresti.
Imperativo

0

È possibile creare un collegamento personalizzato come descritto qui utilizzando un piccolo 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; 
});

questo funzionerà per tutti i collegamenti con la classe linkPinItche hanno l'immagine e la descrizione memorizzate negli attributi dati HTML 5 data-imageedata-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> 

guarda questo esempio di jfiddle

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.