Посилання на "закріпити" на pinterest, не створюючи кнопки


116

У мене є сторінка з десятками чи сотнями публікацій, у кожному - із соціальних кнопок. Я просто не можу генерувати всі кнопки для кожної URL-адреси: вона занадто повільна (facebook, g +, twitter, pinterest ... для сотень посилань). Тож замість фейсбук-кнопки, яку потрібно генерувати на льоту, я використовую простий 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, дякую.

Відповіді:


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
Кент Брюстер

Інструмент побудови віджетів Pin It business.pinterest.com/widget-builder/#do_pin_it_button також корисний для отримання зразкового коду, який ви можете потім налаштувати програмно.
Вільям Денніс

6
@KentBrewster - Що того варте, я опинився тут із тим самим питанням, відвідавши вашу сторінку. Інформація, яку вона має, є чудовою, але вона не говорить про параметри URL-адреси або про те, що URL-адресу можна використовувати без javascript (у контексті створення кнопок на льоту), як це роблять facebook та twitter еквівалентні сторінки.
xr280xr

Мій урленкод в описі трохи примхливий. Будь-яка ідея чому? Приклад: "На даний момент я & amp; # 8217; я просто збираюсь скопіювати & amp; amp; paste з іншої публікації, оскільки & amp; # 8230; time." - очевидно, менше, ніж ідеал.
імператив

2
Вищенаведена відповідь справно працює, якщо користувач уже зареєстрований у pinterest, інакше він залишається на домашній сторінці pinterest навіть після успішного входу. Будь-які рішення?
Uday

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
Я дуже вважаю за краще робити власні посилання. Це все ще працює, чи вони змінили це?
нуво

6
Прийнята відповідь створить кнопку, якщо у вас є інша кнопка pinterest (і завантажений скрипт pinit.js). Зміна URL-адреси на "посилання" замість "кнопки" дозволить вам мати кнопку пінтересту у вашому нижньому колонтитулі та спеціальне посилання на pinterest десь на вашій сторінці. Це має бути прийнятою відповіддю.
ashack

1
Дякую за вашу відповідь, саме те, що я шукав. На мою думку, це повинна бути правильна відповідь :)
patricia

3
Я upvoted ця відповідь, але пізніше з'ясувалося , що 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
відпочиваючи

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
Це працювало для мене, але 2 питання. Як можна підтримувати спливаюче вікно? Крім того, що робить випадкова математика?
Пат

Це офіційний код Pinterest з їх "закладки". Зазвичай він використовується як посилання, яке ви зберігаєте до своїх закладок, і може натиснути на будь-який веб-сайт, який ви відвідуєте, щоб налагодити діалог Pinterest, але він також працює чудово, і це легко здійснити.
ConorLuddy

1
Вони досить конкретно говорять вам не робити цього в документах API. Тільки тому, що ти можеш, не означає, що ти повинен.
імператив

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.