2012-05-21 12 views
93

Ich habe eine Seite mit Dutzenden oder Hunderten von Beiträgen, jeder mit sozialen Schaltflächen. Ich kann nicht alle Tasten für jede URL generieren: es ist zu langsam (Facebook, G +, Twitter, Pinterest ... für Hunderte von Links). Anstatt also die Schaltfläche Facebook teilen, um on the fly generiert werden, ich ein einfaches img zuLink zu "pin it" auf pinterest ohne eine Schaltfläche zu generieren

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

Wenn der Benutzer darauf klickt, öffnet sich ein Popup-Fenster mit Inhalten von Facebook generiert.

Wie kann ich das für Pinterest machen? Ich finde nur um Code herum, um den Button zu generieren, aber ich möchte js möglichst vermeiden. Gibt es so etwas wie das Folgende?

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

Bitte versuchen Sie nicht, mich die js-Taste verwenden, danke.

Antwort

154

Der Standard-Pinterest-Tastencode (den Sie generate here haben können), ist ein <a> Tag, der einen der Pinterest-Taste umschließt.

Wenn Sie das pinit.js-Skript nicht auf Ihrer Seite einschließen, funktioniert dieses <a>-Tag "wie es ist". Sie können das Erlebnis verbessern, indem Sie einen eigenen Klick-Handler für diese Tags registrieren, der ein neues Fenster mit den entsprechenden Dimensionen öffnet oder dem Tag mindestens target="_blank" hinzufügt, um Klicks in einem neuen Fenster zu öffnen.

Die Tag-Syntax wie folgt aussehen würde:

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

die JavaScript-Versionen des Teilens Tasten Wenn verwenden Ihre Ladezeiten zu ruinieren, können Sie Ihre Website mithilfe von asynchronen Lademethoden verbessern. Um ein Beispiel dafür mit der Pinterest-Taste zu sehen, sehen Sie sich meine GitHub Pinterest button project with an improved HTML5 syntax an.

+3

Große Antwort, danke! Siehe auch unsere Seite auf developer.pinterest.com, hier: http://developers.pinterest.com/pin_it/ –

+0

Die Pin It Widget Builder http://business.pinterest.com/widget-builder/#do_pin_it_button ist auch nützlich, um Beispielcode zu erhalten, den Sie dann programmatisch anpassen können. –

+6

@KentBrewster - Für was es wert ist, endete ich hier mit der gleichen Frage nach dem Besuch Ihrer Seite. Die Informationen, die es hat, sind alle großartig, aber es wird nicht über die URL-Parameter gesprochen oder dass die URL ohne Javascript (im Kontext der Erstellung von Buttons im laufenden Betrieb) verwendet werden kann, wie Facebook und Twitter entsprechende Seiten. – xr280xr

2

ich einige Code für Wordpress Gefunden:

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

Dann legen Sie die folgenden in Ihrem 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> 
1

So möchten Sie den Code an die sie Knopfstift ohne den Knopf zu installieren? Wenn dies der Fall ist, fügen Sie diesen Code an der Stelle der URL der Seite ein, von der Sie eine Nachricht erhalten haben. Es sollte als Pin-Taste ohne die Taste funktionieren.

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

Das funktionierte für mich, aber 2 Fragen. Wie können Sie das Popup pflegen? Was macht die zufällige Mathematik? – Pat

+0

Es ist Pinterests offizieller Code von ihrem "Bookmarklet". Es wird normalerweise als Link verwendet, den Sie in Ihren Lesezeichen speichern und auf eine von Ihnen besuchte Website klicken können, um einen Pinterest-Dialog aufzurufen, aber es funktioniert auch auf diese Weise und ist einfach zu implementieren. – ConorLuddy

+1

Sie sagen ziemlich speziell, dass Sie dies nicht in den API-Dokumenten tun sollten. Nur weil du kannst, heißt das nicht, dass du es tun solltest. – Imperative

54

Wenn Sie einen einfachen Hyperlink anstelle des Stiftes es Schaltfläche erstellen,

ändern diese:

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

Um dies:

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

So, eine komplette URL mi ght einfach wie folgt aussehen:

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

+1

Ich bevorzuge es, meine eigenen Links zu machen. Funktioniert das noch, oder haben sie es geändert? – nouveau

+5

Die akzeptierte Antwort generiert eine Schaltfläche, wenn Sie eine weitere Pinterest-Schaltfläche haben (und das Skript pinit.js geladen). Wenn Sie die URL so ändern, dass sie "Link" anstelle von "Schaltfläche" enthält, können Sie einen Pinterest-Button in Ihrer Fußzeile und einen benutzerdefinierten Pinterest-Link irgendwo auf Ihrer Seite haben. Dies sollte die akzeptierte Antwort sein. – ashack

+1

Tatsächlich ist es die beste und genaue Antwort. Danke, Mann. –

5

hatte ich die gleiche Frage. Das funktioniert super in Wordpress!

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

Sie können einen benutzerdefinierten Link erstellen, wie here beschrieben einen kleinen jQuery-Skript

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

dies wird für alle Verbindungen mit Klasse arbeitet linkPinIt, das das Bild hat und die in den HTML-5-Daten gespeichert Beschreibung Attribute data-image und data-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> 

sehen diese jfiddle example

4

Für solche Fälle fand ich sehr nützlich die Share Link Generator, es hilft bei der Erstellung von Facebook, Google+, Twitter, Pinterest, LinkedIn Teilen Tasten.

Verwandte Themen