プラグインなし!内部・外部リンク対応のブログカードを表示する方法。|WordPress

WordPressで、プラグインを使わずにブログカードを表示する方法をご紹介致します。

プラグイン不使用には、サーバー負荷の軽減やサイト表示速度の保持など様々なメリットがあります。

WordPressには多種多様なプラグインがたくさんありますが、できるだけ使わずにカスタマイズしたいものです。

同じ思いの方々に是非参考にしていただきたいと思い、本サイトでも導入している実装方法をご紹介させていただきます。

ショートコードを設置する方法で、内部リンク・外部リンクに対応しています。

完成イメージ

下記が表示イメージです。

デザインはCSSで自由にカスタマイズ可能です。

※もし表示されない場合はリロードしてください。

内部リンク

外部リンク

目的

内部リンク対応ブログカード

内部リンクの場合「サイト内を横断する関連ページへのリンクのクリック率を上げて全体のPVアップに繋げる」ことで、自サイトのSEO内部対策の手法のひとつになります。

外部リンク対応ブログカード

  1. 外部リンク先のサイト送客貢献
  2. 外部サイト送客による何らかの恩恵獲得

関連コンテンツが掲載されたページからの被リンク獲得は外部リンク先のサイトにとってSEO上の恩恵があるため、自サイトにも何らかの形で恩恵が返ってくる可能性があります。

設置方法

次の手順で設置していきます。

  1. OpenGraph.phpの導入
  2. functions.phpの編集
  3. CSSの編集
  4. ショートコードでブログカードを挿入

OpenGraph.phpの設置

OpenGraph.phpは外部サイトのOGPタグから各種情報を取得できるようにするためのPHPファイルです。

ファイルダウンロード

以下サイトよりファイルをダウンロードします。

「Code」ボタンをクリックし「Download ZIP」からファイル一式をダウンロードします。

ファイルの解凍・設置

Zipファイルを解凍し、「OpenGraph.php」をfunctions.phpがあるディレクトリと同じ場所に設置してください。

functions.phpの編集

functions.phpの編集を行います。

子テーマが利用できる環境であれば子テーマのfunctions.phpを利用してください。

各コードの説明書きはそれぞれコード上部に記載していますので、参考にされてください。

※必ずバックアップをとってから編集してください。

/* 外部リンク対応ブログカードのショートコードを作成 */
function show_Linkcard($atts) {
	extract(shortcode_atts(array(
		'url'=>"",
		'title'=>"",
		'excerpt'=>""
	),$atts));
	
	//画像サイズの横幅を指定
	$img_width ="170";
	//画像サイズの高さを指定
	$img_height = "170";
	
	//OGP情報を取得
	require_once 'OpenGraph.php';
	$graph = OpenGraph::fetch($url);
	
	//OGPタグからタイトルを取得
	$Link_title = $graph->title;
	if(!empty($title)){
		$Link_title = $title;//title=""の入力がある場合はそちらを優先
	}
		
	//OGPタグからdescriptionを取得(抜粋文として利用)
	$Link_description = wp_trim_words($graph->description, 60, '…' );//文字数は任意で変更
	if(!empty($excerpt)){
		$Link_description = $excerpt;//値を取得できない時は手動でexcerpt=""を入力
	}
	
	//wordpress.comのAPIを利用してスクリーンショットを取得
	$screenShot = 'https://s.wordpress.com/mshots/v1/'. urlencode(esc_url(rtrim( $url, '/' ))) .'?w='. $img_width .'&h='.$img_height.'';
	//スクリーンショットを表示
	$xLink_img = '<img src="'. $screenShot .'" width="'. $img_width .'" />';
	
	//ファビコンを取得(GoogleのAPIでスクレイピング)
	$host = parse_url($url)['host'];
	$searchFavcon = 'https://www.google.com/s2/favicons?domain='.$host;
	if($searchFavcon){
		$favicon = '<img class="favicon" src="'.$searchFavcon.'">';
	}
		
	//外部リンク用ブログカードHTML出力
	$sc_Linkcard .='
	<div class="blogcard ex">
	<a href="'. $url .'" target="_blank" rel="noopener noreferrer">
	 <div class="blogcard_thumbnail">'. $xLink_img .'</div>
	 <div class="blogcard_content">
	  <div class="blogcard_title">'. $Link_title .'</div>
	  <div class="blogcard_excerpt">'. $Link_description .'</div>
	  <div class="blogcard_link">'. $favicon .' '. $url .' </div>
	 </div>
	 <div class="clear"></div>
	</a>
	</div>';	
	
	return $sc_Linkcard;	
}

//ショートコードに追加
add_shortcode("sc_Linkcard", "show_Linkcard");

CSSコードの設定

最後にCSSの調整を行います。

CSSコードは以下になります。

style.cssなど任意のスタイルシートに丸ごとコピペしてください。

.blogcard {
  line-height: 1;
  background-color: #fff;
  word-wrap: break-word;
  margin: 10px 0
}

.blogcard.ex {
  background-color: #f5f5f5;
  border-radius: 5px
}

.blogcard a {
  text-decoration: none;
  opacity: 1;
  transition: all .2s ease
}

.blogcard a:hover {
  opacity: .6
}

.blogcard_thumbnail {
  float: left;
  padding: 20px
}

.blogcard_title {
  font-size: 1em;
  font-weight: 700;
  line-height: 1.4;
  padding: 17px 20px 10px
}

.blogcard_excerpt {
  font-size: .85em;
  line-height: 1.6;
  padding: 0 17px 15px 20px
}

.blogcard_link {
  font-size: .9em;
  padding: 0 17px 15px 20px;
  text-align: left
}

.blogcard_link .favicon {
  margin-bottom: -4px;
  width: 18px;
  height: 18px
}

CSSをカスタマイズすることで任意のデザインに変更可能です。

スマートフォン用のCSS

スマートフォン表示に対応するためのCSSコードです。

@media screen and (max-width:768px) {
  .blogcard {
    margin: 10px 0
  }
  .blogcard_thumbnail img {
    width: 90px
  }
  .blogcard_title {
    font-size: .95em;
    padding-bottom: 17px
  }
  .blogcard_excerpt {
    display: none
  }
}

CSSの編集が完了したら、テーマで使用しているCSSに保存してください。

設定については以上で完了です。

ブログカード表示方法

以下のようなショートコードを挿入します。

[sc_Linkcard url="リンク先URL"]

例えば、『https://x.com/』のカードを表示させたい場合は下記のようなショートコードになります。

【ショートコード例】

[sc_Linkcard url="https://x.com/"]

【表示例】

また、外部リンク先のタイトルやdescriptionが取得できない場合や、個別に文言を入れる際は、ショートコード内に「url」とは他に「title」「excerpt」を手動で入力することで任意のテキストを表示させることが可能です。

【ショートコード例】

[sc_Linkcard url="https://x.com/" title="任意のタイトル名" excerpt="任意の説明文"]

【表示例】

まとめ

今回はプラグインを使わずにWordPressに「内部・外部リンク対応のブログカードを表示させる方法」をご紹介しました。

作業自体は時間もかからず、すぐに実装できますので宜しければ参考にされてください。

更に条件分岐なども加え、特定の記事ページのみ反映させ、その他のページ速度に影響を与えない方法もご紹介予定ですので、引き続きご購読いただけますと幸いです。

最後までご覧いただきありがとうございました。

植物

Astrophytum asterias アストロフィツム 兜丸

根強い愛好家が最も多いサボテンのひとつです。 アストロフィツム兜丸は特に品種が多く交配も実生もしやすいことから人気が高いです。 棘がないのも人気のひとつと考えています。 また、園芸品としても、錦やVア...

続きを見る

Web Woocommerce Wordpress コード プラグインなし

プラグインなし!Woocommerce のマイアカウントページに任意の項目だけ表示させる方法。

Woocommerceのマイアカウントページの項目は扱う商品やそのサイトによって異なります。 例えば「ダッシュボード」項目と「ダウンロード」項目を非表示にさせたい場合は下記のようにすると実現できます。...

続きを見る

Web Wordpress コード

リンクの書き換えを省く方法。WordPress

複数のWordpressサイトを構築していると、複製する際に「URLを書き換える」という作業が面倒という問題に直面します。 この問題を未然に解決するためには下記のコードがおすすめです。 テーマの「fu...

続きを見る

Web コード プラグインなし

長いリンク(URL)がはみ出すときのCSS。スマホでも対策OK!

スマートフォンで見ると、長いリンクが横にはみ出している場合があります。そんなときは下記スタイルで対処できます。 a{word-break: break-all;}

続きを見る

環境問題 移住

日本沈没は本当!?東京、千葉、埼玉、茨城はほとんど沈没(千葉は島化)。札幌、仙台、名古屋、大阪、沖縄等も沈没予想。温暖化・沸騰化で南極の氷(淡水)が溶ける。早めの移住と首都移動を。

今世界は「温暖化」を通り越し「沸騰化」に突入しています。 淡水である南極の氷が解け切った場合、海面が約60m(大体20階建てくらいのビルの高さ)上昇すると言われており、シミュレーションしてみたところ関...

続きを見る

植物

Aztekium ritteri アズテキウム リッテリ 花籠

1. 生息地2. 説明3. 栽培 生息地 通常は垂直の石灰岩の崖で育ちます。 メキシコ北東部のヌエボレオン地方にある2つの離れた小さな地域の固有種です。 違法採集と斜面の自然侵食により、生息地では絶滅...

続きを見る

Web Woocommerce Wordpress プラグイン

WordPressのユーザー情報をCSVエクスポート、インポートするプラグイン

「Import and export users and customers」というプラグインを利用します。 とにかくシンプルにユーザー情報をCSVでダウンロードできればいい、という方にお勧めです。 ...

続きを見る

アニメ

2024年春アニメ放送後人気ランキング。

【第10位】変人のサラダボウル 【第9位】夜のクラゲは泳げない 【第8位】ザ・ファブル 【第7位】忘却バッテリー 【第6位】この素晴らしい世界に祝福を!3 【第5位】終末トレインどこへいく? 【第4位...

続きを見る

Web Wordpress セキュリティ プラグイン

WordPress データベースの接頭辞(プレフィックス)変更プラグイン「Change Table Prefix」

WordPressのセキュリティを強化したい場合は、データベーステーブルの接頭辞(プレフィックス)を変更する必要があります。 インストール後にシンプルに早く変更したい場合はこのプラグイン一択です。 C...

続きを見る

CDN スピード セキュリティ

CloudflareでDNS設定。爆速DNSを設定してより快適なITライフを。

CloudflareでDNS設定をすることによって、ブラウザの起動がはやまるだけでなく、セキュリティ向上にも寄与します。 是非お試しください。 1. 1.1.1.12. ​​1.1.1.1 家族向け2...

続きを見る

コメントを残す

本サイトは、皆様に快適な閲覧をご提供させていただくためにcookieを使用しています。cookieの使用に同意しますか?