取得した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 = ‘
return $html;
}[/php]
確認してみる
記事中にショートコードを書いてみる
ちゃんと取得できているか確認してみましょう。
記事中に、
外部ヘッダー リンクをカードにするプラグインを作ろう!リンクをカード形式で表示させるWordPressプラグインを作成していきます。 (1)機能を考える まずはどんなことをしたいのか考えます。 完成予想 (2)クラスの記述をする プラグインの器を用意します。 (3)cURLでサイトの内容を取得外部ボタン
と書いてプレビューしてみましょう。
結果をプレビューで確認する
こんな感じで表示されたと思います。
ぽぽづれ。 | ←サイト名称 |
リンクをカードにするプラグインを作ろう! | ←タイトル |
https://popozure.info/popo-blogcard-test | ←URL |
リンクをカード形式で表示させるWordPressプラグインを作成していきます。 | ←概要文 |
ちゃんと取得できたみたいです。
今回のコード
今回はここまでです。
[php title=”popo-blogcard.php”]‘.$site_name.’
コメント