[PHP]外部サイトのOGPを利用して、URLを指定するだけで記事内にサムネイルや概要をタイトルを表示

WPは標準で、サイトに設定されたOGPタグを利用してURLだけでサイトにブログカードを表示することが出来ます。PHPの勉強のためにも自力で取得してみます。

WP標準OGPの取得を停止

WP4.4からはブログカードの表示が標準で付くようになりましたので、停止しましょう。

remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'rest_output_link_wp_head');
remove_action('wp_head', 'wp_oembed_add_host_js');
functions.php
ソースコード装飾ならGoogle code prettify

opengraphをDL

他サイトのOGPを利用する「opengraph」は、gitで配布されています。

require_once 'OpenGraph.php';
$graph = OpenGraph::fetch($url);
if ($graph) {
  $title       = $graph->title;
  $url         = $graph->url;
  $description = $graph->description;
  $src         = $graph->image;
}
ソースコード装飾ならGoogle code prettify

ファビコンを取得するには

googleがスクレイピングしたfaviconを非公式に利用出来るみたいなので、それを利用してます。

$host = parse_url($url)['host'];
$searchFavcon = 'https://www.google.com/s2/favicons?domain='.$host;
if($searchFavcon){
  $favcon = '<img class="favcon" src="'.$searchFavcon.'">';
}
ソースコード装飾ならGoogle code prettify


https://www.labnol.org/internet/get-favicon-image-of-websites-with-google/4404/

しば に更新 1486文字 1,684view
※この記事は2年前の記事です。内容が古い可能性があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください