リンクをカードにするプラグインを作ろう!(4)OGP情報を取得する

PHP

取得したHTMLからリンク先のタイトルと概要文を抜粋します。

前回まで

リンク先サイトからHTMLを取得しました。

[link url=”https://popozure.info/20180811/13236″]

今回もコードを書いていく

OGPを取得する

metaタグからOGPの情報を取得します。

get_meta_tags()を使うと簡単そうですがget_meta_tags()はnameとcontentの組み合わせしか拾ってくれません。

OGPのmetaタグはpropertyとcontentなので正規表現で取りに行きます。

[php title=”popo-blogcard.php” start-line=”25″ mark=”6-15″] $html = curl_exec($ch);
if (curl_errno($ch ) ) {
$site_name = ”;
$title = $url;
$excerpt = ”;
} else {
if (preg_match(‘/property=”og:title”\s*content=”([^”]*)/si’, $html, $m ) ) {
$title = esc_html($m[1]);
}
if (preg_match(‘/property=”og:description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
}
if (preg_match(‘/property=”og:site_name”\s*content=”([^”]*)/si’, $html, $m ) ) {
$site_name = esc_html($m[1]);
}
}
curl_close($ch );
}[/php]

取得結果を表示する

とりあえず取得結果を返却してみましょう。

[php title=”popo-blogcard.php” start-line=”30″ mark=”13-14″] } else {
if (preg_match(‘/property=”og:title”\s*content=”([^”]*)/si’, $html, $m ) ) {
$title = esc_html($m[1]);
}
if (preg_match(‘/property=”og:description”\s*content=”([^”]*)/si’, $html, $m ) ) {
$excerpt = esc_html($m[1]);
}
if (preg_match(‘/property=”og:site_name”\s*content=”([^”]*)/si’, $html, $m ) ) {
$site_name = esc_html($m[1]);
}
}
curl_close($ch );
$html = ‘

‘.$site_name.’
‘.$title.’
‘.$url.’
‘.$excerpt.’
‘;
return $html;
}[/php]

確認してみる

記事中にショートコードを書いてみる

ちゃんと取得できているか確認してみましょう。

記事中に、

外部ヘッダー
外部サイトアイコンのALT
ぽぽづれ。
外部リンク
外部サムネイルのALT
リンクをカードにするプラグインを作ろう!
リンクをカード形式で表示させるWordPressプラグインを作成していきます。 (1)機能を考える まずはどんなことをしたいのか考えます。 完成予想 (2)クラスの記述をする プラグインの器を用意します。 (3)cURLでサイトの内容を取得
外部ボタン

と書いてプレビューしてみましょう。

結果をプレビューで確認する

こんな感じで表示されたと思います。

ぽぽづれ。 ←サイト名称
リンクをカードにするプラグインを作ろう! ←タイトル
https://popozure.info/popo-blogcard-test ←URL
リンクをカード形式で表示させるWordPressプラグインを作成していきます。 ←概要文

ちゃんと取得できたみたいです。

今回のコード

今回はここまでです。

[php title=”popo-blogcard.php”]‘.$site_name.’

‘.$title.’
‘.$url.’
‘.$excerpt.’
‘;
return $html;
}
}
$popo_blogcard = new popo_blogcard;[/php]

次回は・・・

今回の取得方法で記事内容が取得できないサイトに対応しようと思います。

[link url=”https://popozure.info/20180817/13271″]

では、この辺で。(^-^)o

[amzn-link asin=”4774187062″][amzn-link asin=”B00M939Y0I”][amzn-link asin=”4798143774″][amzn-link asin=”4774189642″][amzn-link asin=”B075ZYQDRB”]

コメント

タイトルとURLをコピーしました