MENU

【WordPress】ブログカードをプラグインなしで実装する方法

ブログカードは、他のウェブページへのリンクを魅力的に表示するための便利な機能です。

この記事では、WordPressを使ってプラグインなしでブログカードを自作し、最終的に以下のようなブログカードを生成できるようにします。

完成したブログカードの例
目次から探す

ブログカードの実装方法

ブログカードを自作するためには、以下の手順を順番に実行する必要があります。必要なファイルの準備から、具体的なコードの追加方法までを解説します。

functions.phpの編集手順

ブログカードを表示するために、WordPressのfunctions.phpファイルを編集し、ショートコードを作成します。この手順に従うことで、記事内に簡単にブログカードを挿入できるようになります。

ショートコードの作成

まず、functions.phpに以下のコードを追加します。これにより、ブログカードを生成するためのショートコードが定義されます。

// ショートコードの登録
add_shortcode("blogcard-original", "blogcard-original_shortcode");

function blogcard_shortcode($atts) {
    $atts = shortcode_atts(
        array(
            'url' => '',
        ),
        $atts,
        'blogcard'
    );

    if (empty($atts['url'])) {
        return '';
    }

    // OGP情報を取得
    $ogp_data = get_ogp_data($atts['url']);
    if (!$ogp_data) {
        return '';
    }

    // ブログカードのHTML出力
    $html = '<div class="blogcard-original">';
    $html .= '<a href="' . esc_url($atts['url']) . '" target="_blank">';
    $html .= '<div class="blogcard-original-thumbnail"><img src="' . esc_url($ogp_data['image']) . '" alt="' . esc_attr($ogp_data['title']) . '"></div>';
    $html .= '<div class="blogcard-original-content">';
    $html .= '<div class="blogcard-original-title">' . esc_html($ogp_data['title']) . '</div>';
    $html .= '<div class="blogcard-original-description">' . esc_html($ogp_data['description']) . '</div>';
    $html .= '</div></a></div>';

    return $html;
}

function get_ogp_data($url) {
    $response = wp_remote_get($url);
    if (is_wp_error($response)) {
        return false;
    }

    $html = wp_remote_retrieve_body($response);

    // 正規表現を使用してOGPタグを抽出
    $ogp_tags = array(
        'title' => '',
        'description' => '',
        'image' => ''
    );

    preg_match('/<meta property="og:title" content="(.*?)"/', $html, $matches);
    if (isset($matches[1])) {
        $ogp_tags['title'] = $matches[1];
    }

    preg_match('/<meta property="og:description" content="(.*?)"/', $html, $matches);
    if (isset($matches[1])) {
        $ogp_tags['description'] = $matches[1];
    }

    preg_match('/<meta property="og:image" content="(.*?)"/', $html, $matches);
    if (isset($matches[1])) {
        $ogp_tags['image'] = $matches[1];
    }

    return $ogp_tags;
}

このコードは、ブログカードを生成するためのショートコードを定義します。[blogcard url="リンク先のURL"]という形式でショートコードを使用することで、記事内にブログカードを挿入できます。

OGP情報の取得

ショートコード内では、指定されたURLからOGP情報を取得します。

これにより、リンク先のタイトルや画像を自動的に取得することができます。OGP情報を取得するためのget_ogp_data関数は、指定されたURLからHTMLを取得し、正規表現を使用してOGPタグの内容を抽出します。

HTML出力の構築

取得したOGP情報を元に、ブログカードのHTMLを生成します。

これにより、ユーザーがクリックしたくなるような魅力的なリンクを作成できます。生成されたHTMLは、画像とテキストが含まれるカード形式で表示され、リンク先の情報をわかりやすく伝えます。

この時点ではCSSを書いていないため、ショートコードでブログカードを生成してもデザインがめちゃくちゃになっています。


これらの手順を実行することで、WordPressサイトにブログカード機能を追加し、記事内で簡単にブログカードを表示できるようになります。

ブログカードを活用することで、リンクの視覚的な魅力を高め、読者のクリック率を向上させることが期待できます。

CSSファイルの編集手順

ブログカードのデザインを整えるためには、CSSファイルを編集し、視覚的に魅力的なスタイルを適用することが重要です。以下に、ブログカードの基本スタイル、ホバー効果、レスポンシブデザインの考慮について詳しく説明します。

基本スタイルの設定

ブログカードの基本的なスタイルを設定し、背景色やボーダー、フォントサイズなどを指定します。これにより、ブログカードの見た目が整います。

以下のCSSコードをstyle.cssに追加します。

/* ブログカードの基本スタイル */
.blogcard-original {
  display: flex;
  border: 1px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
  background-color: #fff;
  margin: 16px 0;
  transition: box-shadow 0.3s ease;
}

.blogcard-original a {
  display: flex;
  text-decoration: none;
  color: inherit;
}

.blogcard-original-thumbnail img {
  width: 150px;
  height: 150px;
  object-fit: contain;
  border-right: 1px solid #ddd;
  max-width: inherit;}

.blogcard-original-content {
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.blogcard-original-title {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 8px;
}

.blogcard-original-description {
  font-size: 14px;
  color: #666;
}

ホバー効果の追加

ユーザーがマウスを乗せたときのホバー効果を追加することで、インタラクティブな体験を提供します。以下のCSSコードを追加します:

/* ホバー効果 */
.blogcard-original:hover {
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

レスポンシブデザインの考慮

スマートフォンやタブレットなど、さまざまなデバイスでの表示に対応するために、メディアクエリを使用してレスポンシブデザインを考慮します。以下のCSSコードを追加します:

/* レスポンシブデザイン */
@media (max-width: 768px) {
  .blogcard-original {
      flex-direction: column;
  }

  .blogcard-original-thumbnail img {
      width: 100%;
      height: auto;
      border-right: none;
      border-bottom: 1px solid #ddd;
  }

  .blogcard-original-content {
      padding: 8px;
  }

  .blogcard-original-title {
      font-size: 16px;
  }

  .blogcard-original-description {
      font-size: 12px;
  }
}

これらのCSSを適用したものがこちらです。

自作ブログカードの例

これらの手順を踏むことで、ブログカードのデザインが整い、視覚的に魅力的な表示を実現できます。

また、レスポンシブデザインを取り入れることで、さまざまなデバイスに対応した表示が可能になります。

ブログカードの使用方法

ブログカードを自作した後は、実際に記事内でどのように使用するかを理解することが重要です。

ここでは、ショートコードの使い方や引数の指定方法、実際の使用例について詳しく解説します。

ショートコードの使い方

WordPressでは、ショートコードを使って簡単にブログカードを挿入することができます。

ショートコードは、特定の機能を呼び出すための短いコードで、記事の任意の場所に挿入することができます。

ブログカードを表示させたい場所に、以下の形式でショートコードを記述します。

[blogcard url="リンク先のURL"]

例えばこの記事のブログカードを作りたい場合はこうなります。

[blogcard url="https://blog.allity.jp/wordpress-blog-card-no-plugin/"]

このショートコードを記事内に挿入することで、指定したURLの情報を元にブログカードが生成されます。

このように、プラグインに頼らなくても、ショートコードを自作することで簡単にブログカードを挿入し、記事の内容をより魅力的に見せることができます。

ぜひ、実際のブログ記事に取り入れてみてください。

注意点とトラブルシューティング

ブログカードを自作する際には、いくつかの注意点やトラブルが発生することがあります。

ここでは、よくある問題とその解決策について解説します。

OGP情報が取得できない場合

OGP情報が取得できない場合、以下の点を確認してください。

  1. URLの正確性: 指定したURLが正しいかどうかを確認します。

URLが間違っていると、OGP情報を取得できません。

  1. OGPタグの設定: リンク先のサイトにOGPタグが正しく設定されているか確認します。

OGPタグが存在しない場合、情報を取得できません。

  1. CORSポリシー: 一部のサイトでは、Cross-Origin Resource Sharing (CORS) ポリシーにより、外部からのリクエストが制限されていることがあります。

この場合、OGP情報を取得できません。

サムネイル画像が表示されない場合

サムネイル画像が表示されない場合、以下の点を確認してください。

  1. OGPタグの確認: OGP情報の中にサムネイル画像のURLが含まれているか確認します。

<meta property="og:image</code>>タグが正しく設定されているかをチェックします。

  1. 代替画像の設定: OGPタグにサムネイル画像が設定されていない場合、代替画像を表示するように設定しているか確認します。

代替画像が設定されていないと、何も表示されないことがあります。

これでブログカードを自作する流れがわかったかと思います。

自作しているということはカスタマイズも自由自在ということなので、自分好みにカスタマイズしてみてください。

目次から探す