2012-03-01 10 views
4

Pin Itボタンを使用できるようにしようとしていますが、ページからURLとイメージを自動的に取得しません。 PHPでボタンを動的に挿入するにはどうすればよいですか?Pinterest Pin It ButtonをPHPで埋め込みます

このような種類のexampleでも、ではなく、のGenesisフレームワークを使用します。

答えて

1

これはPin ItボタンのPinterestから作成されたコードです。

phpタグが含まれていることに注目してください。あなた自身のPHPコードをそこに入れてURL、メディア、および記述パラメータを設定します。完了しました。

<a href="http://pinterest.com/pin/create/button/?url=<?php echo url_php_function(); ?>&media=<?php echo media_php_function(); ?>&description=<?php echo description_php_function(); ?>" class="pin-it-button" count-layout="horizontal">Pin It</a>

5

私はまた、動的に読み込まPinterestのボタンを構築するために探していたので、私は一緒にこれを置きます。 simpleHTMLDom parserを使用して、ページ上の最初のイメージ(イメージ用)とページ上の最初の段落(説明用)を取得します。これらのセレクタは、正しい画像/テキストを取得するように変更できます。詳細はsimpleHTMLDom documentationをご覧ください。

<?php 
// Include our dom parser 
include('simple_html_dom.php'); 

// Get the current page URL 
function curPageURL() { 
$pageURL = 'http'; 
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 
$pageURL .= "://"; 
if ($_SERVER["SERVER_PORT"] != "80") { 
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
} else { 
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
} 
return $pageURL; 
} 

$thispage = curPageURL(); 

// Grab our data 
$html = file_get_html($thispage); 
$imgtag = $html->find('img', 0)->src; 
$desc = $html->find('p', 0)->plaintext; 

// Build the URL 
$pinURL = 'http://pinterest.com/pin/create/button/?url=' . $thispage . '&media=' . $imgtag . '&description=' . $desc . ''; 

$html->clear(); 
unset($html); 
?> 

ここで、新しいURLをボタンリンクにエコーするだけです。 「://」

<a href="<?php echo $pinURL ?>" class="pin-it-button" count-layout="horizontal">Pin It</a> 
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script> 
+0

私は自分のニュースアグリゲーターを作ったときにsimpleHTMLDomとSimplePieを使ってこのようなものを作った。その中で最も人気のあるものはhttp://news.muschamp.caです。PHPで作成されたPin Itボタンを見るには、下にスクロールする必要があります。 PinterestがAPIを持っているときにはうれしいですが、今はjQueryを使ってPin Itボタンを動的に追加することができますし、RSSフィードを持っていて、それらのものを構築しましたが、完全なAPIがいいです... – Muskie

1

彼らがURLをコードするか、少なくとものようなものを交換する表示されますhttp://pinterest.com/about/goodies/を見ては「%3A%の2Fの%の2F」でまだどちらの例では、上記のこのパターンに従ったりでurlencodeを使用しています。

私はいくつかの試行錯誤があります。

0

ニュースアグリゲーターのフィーチャーメソッドのコードスニペットです。私がsimpleHTMLDomでイメージを見つけることができる場合、特集されている投稿はPin Itボタンを取得します。

  // Pinterest 
     /* 
     Pinterest requires two bits of code, something like this: 
     <a href="http://pinterest.com/pin/create/button/?url=http%3A%2F%2Fwww.muschamp.ca%2F&media=http%3A%2F%2Fwww.muschamp.ca%2Fimage.jpg&description=whatever" class="pin-it-button" count-layout="horizontal"><img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" /></a> 
     Where you want the button ie here, and 
     <script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script> 
     directly after the body tag just like Facebook's new style button 
     */ 
     // I definitely miss how I did things in my previous code base, if there is no image should not be able to pin... 
     if(($image != NULL) && (! strpos($image->src, '+')) && (! strpos($image->src, '%')) 
      && (preg_match('|^http?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $image->src))) 
     { 
      // If I don't display a valid image, no sense in showing a Pin It button 
      $html .= '<li>'; // Opening <li> 
      // May want a more elaborate description... 
      $html .= '<a href="http://pinterest.com/pin/create/button/?url=' . $item->get_permalink() . '&media=' . $image->src . '&description=' . $item->get_title() . '" class="pin-it-button" count-layout="horizontal"><img border="0" src="//assets.pinterest.com/images/PinExt.png" title="Pin It" /></a></li>'; 
     } 

精巧な特定の有効なURLは、少なくともPinterestののJavaScriptで有効なものとして受け入れられていない可能性がありますように私はテストで発見されたものだったというテストに必要な証明ます。 '%'と '+'文字は特に面倒です。 Pinterestは小さな画像や本当に大きな画像をピン止めさせませんが、PHPを使用してニュースアグリゲータの画像サイズを変更していますので、ここではテストしませんが、Pinterestを追加する際には、応用。