链接到pinterest上的“固定”,而无需生成按钮


116

我有一个包含数十或数百个帖子的页面,每个帖子都有社交按钮。我只是不能为每个URL生成所有按钮:太慢了(facebook,g +,twitter,pinterest ...成百上千个链接)。因此,我使用一个简单的img来代替动态生成的Facebook分享按钮

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

当用户单击它时,将打开一个弹出窗口,其中包含Facebook生成的内容。

如何为Pinterest做到这一点?我只找到用于生成按钮的代码,但是我想尽可能避免使用js。是否有以下内容?

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

请不要试图让我使用js按钮,谢谢。

Answers:


183

标准的Pinterest按钮代码(您可以在此处生成)是<a>包装<img>Pinterest按钮的标签。

如果您不在pinit.js页面上包含脚本,则此<a>标记将“按原样”运行。您可以通过在这些标签上注册自己的点击处理程序来打开新窗口,以适当的尺寸来改善体验,或者至少添加target="_blank"标签以使其在新窗口中打开点击,从而改善体验。

标签语法如下:

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

如果使用共享按钮的JavaScript版本破坏了页面加载时间,则可以使用异步加载方法来改善网站。有关使用Pinterest按钮执行此操作的示例,请查看我的GitHub Pinterest按钮项目,该项目具有改进的HTML5语法


3
好答案,谢谢!另外,请参阅我们在developer.pinterest.com上的页面,此处为:developers.pinterest.com/pin_it
肯特·布鲁斯特 Kent Brewster)

Pin It小部件构建器business.pinterest.com/widget-builder/#do_pin_it_button对获取一些示例代码也非常有用,然后您可以通过编程方式对其进行自定义。
威廉·丹尼斯

6
@KentBrewster-对于它的价值,在访问您的页面后,我在这里遇到了同样的问题。它所具有的信息非常棒,但是它并没有谈论URL参数,也没有提到URL可以像Facebook和Twitter等效页面一样在没有JavaScript的情况下(在动态创建按钮的情况下)使用。
xr280xr 2014年

我在说明中的urlencode有点简陋。知道为什么吗?例子:“此时,我只是因为时间而从另一个帖子中复制并粘贴。” -显然不理想。
势在必行的2015年

2
如果用户已经以pinterest身份登录,则上述答案会很好,否则即使成功登录后,该答案也将停留在pinterest主页中。有什么办法吗?
乌代

69

如果您要创建简单的超链接而不是固定按钮,

更改此:

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

对此:

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

因此,一个完整的URL可能看起来像这样:

<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
我更喜欢建立自己的链接。这仍然有效,还是他们更改了?
nouveau

6
如果您还有另一个pinterest按钮(以及加载的pinit.js脚本),则接受的答案将生成一个按钮。将网址更改为具有“链接”而不是“按钮”,将使您在页脚中具有pinterest按钮,并在页面上的某个位置具有自定义pinterest链接。这应该是公认的答案。
ashack

1
谢谢您的回答,正是我想要的。我认为这应该是正确的答案:)
patricia

3
我赞成这个答案,但后来发现pinterest尝试固定时会引发错误: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.。解决方案是将url保留为,button但忽略pinterest脚本。参见stackoverflow.com/a/15035520/440646
2015年

1
到目前为止没有抛出错误:P用作属性列表共享链接:http://pinterest.com/pin/create/link/?url=URL&media=COVERIMAGE&description=ADDRESS
珍妮

6

我有同样的问题。这在Wordpress中效果很好!

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


2

我找到了一些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>

然后,将以下内容放入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

因此,您想将代码固定到按钮上而不安装按钮吗?如果是这样,只需将此代码粘贴到您要固定的页面的URL位置即可。它应该用作不带按钮的固定按钮。

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
这对我有用,但是有两个问题。如何维护弹出窗口?另外,随机数学有什么作用?
2013年

这是Pinterest的“书签”中的官方代码。它通常用作保存到书签的链接,并且可以单击您访问的任何网站以启动Pinterest对话,但是这种方法也很好用,并且易于实现。
ConorLuddy 2015年

1
他们非常明确地告诉您不要在API文档中执行此操作。仅仅因为您可以,并不意味着您应该这样做。
势在必行的2015年

0

您可以使用小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; 
});

这将适用于所有类的链接,这些链接linkPinIt的图像和描述存储在HTML 5数据属性中,data-image并且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> 

看到这个jfiddle的例子

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.