リンク先のタイトルと概要文を取得します。
前回まで
プラグインのひな型を作りました。
[link url=”https://popozure.info/20180810/13219″]
今回もコードを書いていく
URLパラメータを取得する
ショートコードが書かれたときに呼ばれるshortcodeにコードを書いていきます。
第一パラメータには指定されたパラメータが連想配列で入ってきます。
$url に urlパラメータで指定された文字列を入れてみましょう。
[php title=”popo-blogcard.php” start-line=”11″ mark=”6″]class popo_blogcard {
function __construct() {
add_shortcode(‘blogcard’, array($this, ‘shortcode’ ) );
}
function shortcode($opt , $content = null ) {
$url = $opt[‘url’];
}
}
$popo_blogcard = new popo_blogcard;[/php]
cURLでアクセスする
cURLという機能を使ってリンク先のHTMLを取得します。
[php title=”popo-blogcard.php” start-line=”15″ mark=”3-12″] function shortcode($opt , $content = null ) {
$url = $opt[‘url’];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_TIMEOUT, 8 );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_MAXREDIRS, 8 );
curl_setopt($ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch, CURLOPT_COOKIESESSION, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
$html = curl_exec($ch);
curl_close($ch );
}[/php]
cURLがエラーだったときの処理
エラーのときはタイトルも概要文も取得できないので、タイトルにURLを入れておきます。
[php title=”popo-blogcard.php” start-line=”15″ mark=”12-16″] function shortcode($opt , $content = null ) {
$url = $opt[‘url’];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_TIMEOUT, 8 );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_MAXREDIRS, 8 );
curl_setopt($ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch, CURLOPT_COOKIESESSION, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
$html = curl_exec($ch);
if (curl_errno($ch ) ) {
$site_name = ”;
$title = $url;
$excerpt = ”;
}
curl_close($ch );
}[/php]
これで$htmlにリンク先サイトのHTMLが取得できました。
ここからタイトルや概要文を抜粋します。
今回のコード
今回はここまでです。
[php title=”popo-blogcard.php”]次回は・・・
今回取得したHTMLからタイトルと概要文を抜粋します。
[link url=”https://popozure.info/20180812/13260″]
では、この辺で。(^-^)o
[amzn-link asin=”4774187062″][amzn-link asin=”B00M939Y0I”][amzn-link asin=”4798143774″][amzn-link asin=”4797393157″][amzn-link asin=”B01NCXFWIZ”]
コメント