Liên kết đến "ghim nó" trên pinterest mà không cần tạo nút


116

Tôi có một trang với hàng chục hoặc hàng trăm bài đăng, mỗi bài có các nút xã hội. Tôi chỉ không thể tạo tất cả các nút cho mỗi url: nó quá chậm (facebook, g +, twitter, pinterest ... cho hàng trăm liên kết). Vì vậy, thay vì nút chia sẻ facebook được tạo nhanh chóng, tôi sử dụng một img đơn giản trỏ đến

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

Khi người dùng nhấp vào đó, một cửa sổ popup sẽ mở ra với nội dung do facebook tạo ra.

Làm thế nào tôi có thể làm điều đó cho Pinterest? Tôi chỉ tìm thấy mã xung quanh để tạo nút, nhưng tôi muốn tránh js cả nếu có thể. Có một cái gì đó như sau?

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

Xin đừng cố bắt tôi sử dụng nút js, cảm ơn.

Câu trả lời:


183

Mã nút Pinterest chuẩn (mà bạn có thể tạo tại đây ), là một <a>thẻ bao bọc một <img>nút Pinterest.

Nếu bạn không bao gồm pinit.jstập lệnh trên trang của mình, <a>thẻ này sẽ hoạt động "nguyên trạng". Bạn có thể cải thiện trải nghiệm bằng cách đăng ký trình xử lý nhấp chuột của riêng mình trên các thẻ này để mở một cửa sổ mới với các kích thước thích hợp hoặc ít nhất là thêm target="_blank"vào thẻ để làm cho nó mở các nhấp chuột trong một cửa sổ mới.

Cú pháp thẻ sẽ giống như sau:

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

Nếu việc sử dụng các phiên bản JavaScript của các nút chia sẻ đang làm hỏng thời gian tải trang của bạn, bạn có thể cải thiện trang web của mình bằng cách sử dụng các phương pháp tải không đồng bộ. Để có ví dụ về việc làm điều này với nút Pinterest, hãy xem dự án nút Pinterest trên GitHub của tôi với cú pháp HTML5 được cải tiến .


3
Câu trả lời tuyệt vời, cảm ơn! Cũng xin xem trang của chúng tôi trên developer.pinterest.com, ở đây: developers.pinterest.com/pin_it
Kent Brewster

Trình tạo tiện ích Pin It business.pinterest.com/widget-builder/#do_pin_it_button cũng hữu ích để lấy một số mã mẫu mà sau đó bạn có thể tùy chỉnh theo chương trình.
William Denniss

6
@KentBrewster - Đối với những gì nó đáng giá, tôi đã kết thúc ở đây với cùng một câu hỏi sau khi truy cập trang của bạn. Tất cả thông tin nó có đều tuyệt vời, nhưng nó không nói về các tham số URL hoặc URL có thể được sử dụng mà không cần javascript (trong bối cảnh tạo các nút một cách nhanh chóng) như các trang tương đương facebook và twitter.
xr280xr

Urlencode của tôi trên mô tả là một chút buồn tẻ. Bất kỳ ý tưởng tại sao? Ví dụ: "Tại thời điểm này, tôi chỉ muốn sao chép & amp; amp; dán từ một bài đăng khác vì & amp; # 8230; time." - rõ ràng là ít hơn lý tưởng.
Bắt buộc

2
Câu trả lời ở trên hoạt động tốt nếu người dùng đã đăng nhập trong pinterest nếu không nó chỉ ở lại trang chủ pinterest ngay cả sau khi đăng nhập thành công. Bất kỳ giải pháp?
Uday

69

Nếu bạn muốn tạo một siêu liên kết đơn giản thay vì ghim nút,

Thay đổi điều này:

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

Về điều này:

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

Vì vậy, một URL hoàn chỉnh có thể chỉ đơn giản như sau:

<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
Tôi thích tạo liên kết của riêng mình hơn. Điều này vẫn hoạt động hay họ đã thay đổi nó?
nouveau

6
Câu trả lời được chấp nhận sẽ tạo ra một nút nếu bạn có một nút pinterest khác (và tập lệnh pinit.js đã được tải). Thay đổi url để có 'liên kết' thay vì 'nút' sẽ cho phép bạn có nút quan tâm ở chân trang và liên kết pinterest tùy chỉnh ở đâu đó trên trang của bạn. Đây phải là câu trả lời được chấp nhận.
ashack

1
Cảm ơn câu trả lời của bạn, chính xác những gì tôi đang tìm kiếm. Đây phải là câu trả lời đúng theo ý kiến ​​của tôi :)
Patricia

3
Tôi upvoted câu trả lời này, nhưng sau đó thấy rằng Pinterest ném một lỗi khi cố gắng để 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.. Giải pháp là giữ nguyên url buttonnhưng bỏ qua tập lệnh pinterest. xem stackoverflow.com/a/15035520/440646
nghỉ vào

1
không gặp lỗi như bây giờ: P sử dụng như một liên kết chia sẻ danh sách bất động sản:http://pinterest.com/pin/create/link/?url=URL&media=COVERIMAGE&description=ADDRESS
Jeannie

6

Tôi đã có cùng một câu hỏi. Điều này hoạt động tuyệt vời trong Wordpress!

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

4

Đối với những trường hợp như vậy, tôi thấy Share Link Generator rất hữu ích , nó giúp tạo các nút chia sẻ Facebook, Google+, Twitter, Pinterest, LinkedIn.


2

Tôi tìm thấy một số mã cho 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>

Sau đó, bạn đặt những thứ sau vào PHP của mình:

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

Vì vậy, bạn muốn mã ghim vào nút mà không cần cài đặt nút? Nếu vậy, chỉ cần dán mã này vào vị trí url của trang mà bạn đang ghim. Nó sẽ hoạt động như một nút ghim mà không cần nút.

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
Điều này làm việc cho tôi, nhưng có 2 câu hỏi. Làm thế nào bạn có thể duy trì cửa sổ bật lên? Ngoài ra, phép toán ngẫu nhiên làm gì?
Pat vào

Đây là mã chính thức của Pinterest từ 'bookmarklet' của họ. Nó thường được sử dụng như một liên kết bạn lưu vào dấu trang của mình và có thể nhấp vào bất kỳ trang web nào bạn truy cập để hiển thị cuộc đối thoại trên Pinterest, nhưng cách này cũng hoạt động tốt và dễ thực hiện.
ConorLuddy

1
Họ nói khá cụ thể rằng bạn không nên làm điều này trong tài liệu API. Chỉ vì bạn có thể, không có nghĩa là bạn nên làm.
Bắt buộc

0

Bạn có thể tạo một liên kết tùy chỉnh như được mô tả ở đây bằng cách sử dụng một đoạn mã jQuery nhỏ

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

điều này sẽ hoạt động đối với tất cả các liên kết với lớp linkPinItcó hình ảnh và mô tả được lưu trữ trong các thuộc tính dữ liệu HTML 5 data-imagedata-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> 

xem ví dụ jfiddle này

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.