実践カスタムフィールド メタデータ活用法

WordPressで記事ごとにオリジナルのメタデータを保持

メタデータを使用する

WordPressでは、記事ごとに独自のデータを管理する機能が備わっていて、その機能は

カスタムフィールド

と呼ばれています。

カスタムフィールド機能を使って、記事ごとに複数のメタデータを格納することが出来るようになります。

基本的な使い方

記事単位のメタデータを保存する基本的なコードです。

function save_first_image() {
  update_post_meta( get_the_ID(), 'sample', 'data' );
}

add_action('save_post', 'save_first_image');

上のコードをfunctions.phpの最後に追加し、記事を保存/更新すればメタデータが保存されます。

update_post_meta()を利用することで、

  • 新規のメタデータ
  • 既存のメタデータ

をそれぞれ追加/更新することが可能です。

上のコードでは、

sampleというキー名でdataという値

記事の新規作成/更新時(save_post)に

メタデータとして追加されます。

メタデータの使用例

具体的なメタデータの使用例をあげてみます。

  • アクセス解析データ
  • 記事の画像URL

アクセス解析ツール(Google Analyticsなど)で管理されている、記事ごとのアクセス数や閲覧時間などをメタデータとして管理しておけば、サイト内でアクセス解析データに基づいた記事の表示を行うことが出来ます。また、記事の画像URLを本文から取得してメタデータ化しておくことで、アイキャッチ画像として使用することが出来ます。

アイデア次第で、独自の値をベースにしたサイト運営が出来るようになります。

実践

記事の本文から最初の画像URLを取得して、そのURLを値とするメタデータを格納するコードを書いてみます。

function save_first_image() {

  // 記事本文取得
  $post = get_post(get_the_ID());
  $content = $post->post_content;

  // 最初の画像URLを取得
  $first_img = '';
  $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $content, $matches);
  $first_img = $matches[1][0];

  // メタデータ保存
  update_post_meta( get_the_ID(), 'first_image', $first_img );
}

add_action('save_post', 'save_first_image');

WordPressの管理画面で記事を保存/更新すれば、下の画像で確認できるようにカスタムフィールドが追加されます。

custom-field-image

アーカイブ系のページでの利用

記事ごとに保存したメタデータは、個別記事ページだけでなく、トップページやカテゴリページなどのアーカイブ系のページでも利用可能です。

テーマ構成ファイルの

content.php

でメタデータとして追加したfirst_imageを取得して、ページ内で画像を利用することが出来ます。

$my_eye_catch = get_post_meta(get_the_ID(), 'first_image', true);

get_post_meta()を利用して、ループ内で個々の記事のメタデータを取得することが可能です。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

実践カスタムフィールド メタデータ活用法の記事にコメントを投稿