122

我有一个包含数十或数百个帖子的页面,每个帖子都有社交按钮。我只是无法为每个 url 生成所有按钮:它太慢了(facebook、g+、twitter、pinterest ......对于数百个链接)。因此,我没有使用即时生成的 facebook 分享按钮,而是使用一个简单的 img 指向

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 按钮,谢谢。

4

7 回答 7

185

标准 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 语法

于 2012-06-26T16:52:11.257 回答
83

如果你想创建一个简单的超链接而不是 pin it 按钮,

改变这个:

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

对此:

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

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

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

于 2013-08-21T02:31:03.147 回答
9

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

<a href="//pinterest.com/pin/create/link/?url=<?php the_permalink();?>&amp;description=<?php the_title();?>">Pin this</a>
于 2014-02-12T22:12:35.090 回答
4

对于这种情况,我发现共享链接生成器非常有用,它有助于创建 Facebook、Google+、Twitter、Pinterest、LinkedIn 共享按钮。

于 2015-08-06T08:52:50.297 回答
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>
于 2012-08-06T15:20:19.263 回答
2

因此,您希望在不安装按钮的情况下将代码固定在按钮上吗?如果是这样,只需将此代码粘贴到您要固定的页面的 url 的位置。它应该用作没有按钮的 pin it 按钮。

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

于 2012-08-16T08:35:36.697 回答
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 例子

于 2015-03-31T15:27:13.053 回答