Lien pour "épingler" sur Pinterest sans générer de bouton

116

J'ai une page avec des dizaines ou des centaines d'articles, chacun avec des boutons sociaux. Je n'arrive pas à générer tous les boutons pour chaque url: c'est trop lent (facebook, g +, twitter, pinterest ... pour des centaines de liens). Donc, au lieu du bouton de partage facebook à générer à la volée, j'utilise une simple img pointant vers

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

Lorsque l'utilisateur clique dessus, une fenêtre contextuelle s'ouvre avec le contenu généré par Facebook.

Comment puis-je le faire pour Pinterest? Je ne trouve que du code pour générer le bouton, mais je voudrais éviter du tout js si possible. Y a-t-il quelque chose comme ce qui suit?

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

N'essayez pas de m'obliger à utiliser le bouton js, merci.

Narcolessico
la source

Réponses:

183

Le code standard du bouton Pinterest (que vous pouvez générer ici ) est une <a>balise enveloppant un <img>bouton Pinterest.

Si vous n'incluez pas le pinit.jsscript sur votre page, cette <a>balise fonctionnera "telle quelle". Vous pouvez améliorer l'expérience en enregistrant votre propre gestionnaire de clics sur ces balises qui ouvre une nouvelle fenêtre avec des dimensions appropriées, ou au moins en ajoutant target="_blank"à la balise pour lui faire ouvrir des clics dans une nouvelle fenêtre.

La syntaxe de la balise ressemblerait à:

<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 l'utilisation des versions JavaScript des boutons de partage ruine les temps de chargement de vos pages, vous pouvez améliorer votre site en utilisant des méthodes de chargement asynchrones. Pour un exemple de faire cela avec le bouton Pinterest, consultez mon projet de bouton GitHub Pinterest avec une syntaxe HTML5 améliorée .

Mike Kibbel
la source
3
Excellente réponse, merci! Veuillez également consulter notre page sur developer.pinterest.com, ici: développeurs.pinterest.com
pin_it
Le générateur de widgets Pin It business.pinterest.com/widget-builder/#do_pin_it_button est également utile pour obtenir un exemple de code que vous pouvez ensuite personnaliser par programme.
William Denniss
6
@KentBrewster - Pour ce que ça vaut, je me suis retrouvé ici avec la même question après avoir visité votre page. Les informations dont il dispose sont toutes excellentes, mais elles ne parlent pas des paramètres d'URL ou du fait que l'URL peut être utilisée sans JavaScript (dans le contexte de la création de boutons à la volée) comme le font les pages Facebook et Twitter équivalentes.
xr280xr
Mon urlencode sur la description est un peu bizarre. Une idée pourquoi? Exemple: "À ce stade, je & amp; # 8217; je vais simplement copier & amp; amp; coller à partir d'un autre message parce que & amp; # 8230; c'est l'heure." - évidemment moins qu'idéal.
Impératif du
2
La réponse ci-dessus fonctionne bien si l'utilisateur est déjà connecté à pinterest, sinon il reste simplement dans la page d'accueil de pinterest même après une connexion réussie. Des solutions?
Uday
69

Si vous souhaitez créer un lien hypertexte simple au lieu du bouton Épingler,

Change ça:

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

Pour ça:

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

Ainsi, une URL complète pourrait simplement ressembler à ceci:

<a href="https://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>

Joe Fletcher
la source
2
Je préfère de loin créer mes propres liens. Cela fonctionne-t-il toujours ou l'ont-ils changé?
nouveau
6
La réponse acceptée générera un bouton si vous avez un autre bouton pinterest (et le script pinit.js chargé). Changer l'URL pour avoir «lien» au lieu de «bouton» vous permettra d'avoir un bouton pinterest dans votre pied de page et un lien pinterest personnalisé quelque part sur votre page. Cela devrait être la réponse acceptée.
ashack
1
Merci pour votre réponse, exactement ce que je cherchais. Cela devrait être la bonne réponse à mon avis :)
patricia
3
J'upvoted cette réponse, mais plus tard que pinterest renvoie une erreur en essayant de la broche: 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 solution est de conserver l'url sous buttonforme de script pinterest mais d'ignorer. voir stackoverflow.com/a/15035520/440646
repos le
1
ne lance pas d'erreur pour l'instant: P en utilisant comme lien de partage de liste de propriétés:http://pinterest.com/pin/create/link/?url=URL&media=COVERIMAGE&description=ADDRESS
Jeannie
6

J'avais la même question. Cela fonctionne très bien dans Wordpress!

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

Pour de tels cas, j'ai trouvé très utile le générateur de lien de partage , il permet de créer des boutons de partage Facebook, Google+, Twitter, Pinterest, LinkedIn.

bencergazda
la source
2

J'ai trouvé du code pour 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>

Ensuite, vous mettez ce qui suit dans votre 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>
isabela rodrigues
la source
2

Vous voulez donc que le code épingle le bouton sans installer le bouton? Si c'est le cas, collez simplement ce code à la place de l'url de la page à partir de laquelle vous épinglez. Il devrait fonctionner comme un bouton pin it sans le bouton.

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)})());

mng
la source
1
Cela a fonctionné pour moi, mais 2 questions. Comment pouvez-vous maintenir le popup? Aussi, que font les mathématiques aléatoires?
Pat
C'est le code officiel de Pinterest tiré de leur «bookmarklet». Il est normalement utilisé comme lien que vous enregistrez vers vos signets et que vous pouvez cliquer sur n'importe quel site Web que vous visitez afin d'afficher un dialogue Pinterest, mais cela fonctionne bien de cette façon aussi et est facile à mettre en œuvre.
ConorLuddy
1
Ils vous disent assez spécifiquement de ne pas faire cela dans la documentation de l'API. Ce n'est pas parce que vous pouvez, que vous devriez le faire.
Impératif
0

Vous pouvez créer un lien personnalisé comme décrit ici à l' aide d'un petit 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; 
});

cela fonctionnera pour tous les liens avec la classe linkPinItqui ont l'image et la description stockées dans les attributs de données HTML 5 data-imageetdata-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> 

voir cet exemple jfiddle

0x4a6f4672
la source