3

Pinterest の「ピン留め」ボタンを、当社の Web サイトの製品詳細ページに追加しようとしています。

これまでのところ、私は試しました:

<a href="http://pinterest.com/pin/create/button/?url=<?php echo trim(Mage::registry('current_product')->getProductUrl()) ?>&media;=<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(265) ?>&description;=<?php echo Mage::registry('current_product')->getName(); ?>" class="pin-it-button" count-layout="none">Pin It</a>
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script>

<a href="http://pinterest.com/pin/create/button/?url=<?php echo trim(Mage::registry(\'current_product\')->getProductUrl()) ?>&media;=<?php echo Mage::helper('catalog/image')->init(Mage::registry('current_product'), 'small_image')->resize(900,900);?>&description;=<?php echo Mage::registry('current_product')->getName(); ?>" class="pin-it-button" count-layout="none">Pin It</a>
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script>

これらのいずれでも、製品の URL と製品名を取得できますが、製品の画像を取得できません。したがって、投稿は機能しません (機能するには、URL、メディア、説明の 3 つの項目すべてが必要です)。

これを試すと:

<a href="http://pinterest.com/pin/create/button/?url=http://eberjey.com&media;=<?php echo Mage::helper('catalog/image')->init(Mage::registry('current_product'), 'small_image')->resize(900,900);?>&description;=<?php echo Mage::registry('current_product')->getName(); ?>" class="pin-it-button" count-layout="none">Pin It</a>
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script>

製品の画像を投稿できますが、URL は動的ではありません (Web サイトへの絶対 URL を使用しているだけです)。

このボタンを商品詳細ページに実装する方法について何かアイデアはありますか?

4

8 に答える 8

6

ここでの回答のほとんどは、ピンタレスト リンク用に生成されたクエリ文字列を urlencode() していないため、それらが機能していることに少し驚いています。自分。

次のコードは、template/catalog/product/view.phtml 内に配置すると機能します。

<!--START PIN BUTTON-->
<?php
    $_pinlink['url'] = $_product->getProductUrl();                      
    $_pinlink['media'] = $this->helper('catalog/image')->init($_product, 'image')->__toString() ;
    $_pinlink['description'] = $_helper->productAttribute($_product, $_product->getName(), 'name') . " - " . strip_tags($_product->getDescription());                                                                                   
?>
<a href="http://pinterest.com/pin/create/button/?<?php echo http_build_query($_pinlink) ?>" class="pin-it-button" count-layout="horizontal"></a>                    
<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>
<!--END PIN BUTTON-->

また、Pinterest が投稿された説明からすべての html タグを削除していることにも気付きました。そのため、それらを通過させる意味がないように思われました。したがって、説明のタグを削除しました。

于 2012-07-13T05:34:37.203 に答える
1

これは私にとってはうまくいくようです:

<a href="http://pinterest.com/pin/create/button/?url=<?php echo trim(Mage::registry('current_product')->getProductUrl()) ?>&media=<?php echo $this->helper('catalog/image')->init($_product, 'image') ?>&description=<?php echo Mage::registry('current_product')->getName(); ?>" class="pin-it-button" count-layout="none">Pin It</a>
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script>

これに関する私の唯一の懸念は、直接のURLではなく、キャッシュされた画像のURLを提供することです。このキャッシュされたURLがどれほど永続的かわかりません。この場合、キャッシュされたバージョンではなく、「ソース」を参照する方がよいように思われます。でもよくわかりません…。

于 2012-02-01T12:24:03.397 に答える
0

これがあなたがしなければならないことです:

このコードをコピーして、テーマのview.phtmlファイルとすべてのセットに貼り付けます。

<a href="http://pinterest.com/pin/create/button/?media=<?php echo $this->helper('catalog/image')->init($_product, 'small_image'); ?>&description=<?php echo $_product->getdescription() ?>&url=<?php echo $_product->getProductUrl() ?>" class="pin-it-button" count-layout="horizontal"><img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" /></a>

<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>

これにより、製品の説明、画像、およびリンクが読み込まれます

後で動的URLにURLを入れると、ロードがスタックすることがあります。したがって、上記のコードをコピーして貼り付けるだけで完了です。カスタマイズは必要ありません。

于 2012-03-21T20:03:28.090 に答える
0

これは、magento 製品ページの Pin It ボタンの私のバージョンで、美しく機能します。製品の正規 URL を使用します。説明: 最初に製品の名前を挿入し、その後に 2 つの区切り (%0A) を挿入し、その後に製品の説明を挿入します。製品説明の htmlentities コードは、Pinterest がそれを読み取ることができるように、引用符を変換します。

<!--START PIN BUTTON-->
    <a href="http://pinterest.com/pin/create/button/?url=<?php echo $_product->getProductUrl() ?>&media=<?php echo trim($this->helper('catalog/image')->init($_product, 'image')); ?>&description=<?php echo trim(Mage::registry('current_product')->getName()); ?>%20%0A%0A<?php echo htmlentities($_product->getdescription(), ENT_QUOTES) ?>" class="pin-it-button" count-layout="horizontal"></a>

<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>
<!--END PIN BUTTON-->
于 2012-05-03T00:22:37.160 に答える
0

コードで現在の製品の URL を取得しようとしたことがありますか? その結果、製品ビュー ページで、利用可能な製品の URL は、次のようにこの URL を取得するだけです。

$curProductUrl = $this->helper('core/url')->getCurrentUrl();

// or we can take product id then use in the code
$_product = $this->getProduct();  
$_id = $_product->getId();  

$_productUrl = $_product->getProductUrl();
$_smallImageUrl = $_product->getSmallImageUrl();
于 2012-01-27T20:54:15.377 に答える
0

生成する URL には、各パラメーターの後にセミコロンがあります。それは意図的なものですか?(あなたのブロックを...置き換えます)<? php ?>

<a href="http://pinterest.com/pin/create/button/?url=...&media;=...&description;=..." class="pin-it-button" count-layout="none">Pin It</a>

&media;&description;

セミコロンを削除してみてください。

また、出力が自動的に HTML エスケープされない場合、アンパサンドは代わりに HTML エンティティである必要があります:&amp;media=および&amp;description=.

于 2012-02-21T05:36:21.183 に答える
0

これは私のために働く:

<a href="//www.pinterest.com/pin/create/button/" data-pin-do="buttonPin" data-pin-config="beside" >
<img src="//assets.pinterest.com/images/pidgets/pinit_fg_en_rect_white_20.png" /></a>
   <script type="text/javascript">
   (function(d){
      var f = d.getElementsByTagName('SCRIPT')[0], p = d.createElement('SCRIPT');
      p.type = 'text/javascript';
      p.async = true;
      p.src = '//assets.pinterest.com/js/pinit.js';
      f.parentNode.insertBefore(p, f);
   }(document));
</script>

しかし、キャッシュされた画像を使用しています...元の画像パスを使用しようとしていますが、今まで成功していません。

お役に立てれば

于 2015-07-11T15:51:34.047 に答える
0

Pinterest に画像を追加するには、これを試してください。それは私にとってうまくいきました。

    $this->helper('catalog/image')->init($_product, 'image')->resize(150)
于 2012-02-01T14:38:05.317 に答える