プロフィール欄にカスタマイズで登録した画像を指定したサイズの画像で取得する

公開日: 

wp1

以前、WordPressでショッピングモールのようなホームページを作成する際、店舗情報をプロフィール欄で管理する方法を記述しました。
WordPressのプロフィールに画像項目を追加する

今回は、その時に登録したデータを取得する方法を記述したいと思います。

まず、画像データを取得する前にしておくことがあります。
function.phpに今回取得する画像データを設定しておきます(デフォルトのサムネイルを取得する場合は不要です)。

add_image_size(‘shop_main_img’, 200, 100, true);

今回取得する画像は「shop_main_img」とします。
add_image_sizeに関しては他のサイトを参照してください。
add_image_size

まずは、ユーザー一覧ページなど、ユーザーIDを取得する方法です。
ショップ検索などのページがある事と仮定します。
その検索結果の取得方法は以下です。

$kewword = $_GET[‘sh_word’];
$data = $wpdb->get_results(“SELECT DISTINCT user_id FROM $wpdb->usermeta WHERE meta_key=’samplekeyword’ AND meta_value LIKE ‘%{$kewword}%’ “);
if ($data) {
foreach ($data as $key => $value) {
$user_data = get_userdata($value->user_id);
echo ‘<a href=”詳細ページのURL/detail/?user_id=’.$user_data->id.'”>’.$user_data->nickname.'</a><br>’;
}
} else {
echo ‘データがみつかりませんでした。’;
}

上記の方法でユーザーIDは取得できたかと思います。
続いて、登録した画像データを取得する方法です。

$main_img = get_user_meta( $_GET[‘user_id’], ‘shop_main_img’, true );
if (!isset($main_img[‘error’])) {
$att_id = get_attachment_id($main_img[‘url’]);
echo wp_get_attachment_image($att_id, ‘shop_main_img’);
} else {
$main_img = $main_img[‘error’];
echo “$main_img”;
}

どうでしょう?結構簡単じゃないでしょうか。
ちなみに、登録した画像をそのまま表示したい場合は、「$main_img[‘url’]」に画像へのURLが入っているので、
それをimgタグを使って表示するだけでOKです。

簡単ではあるのですが、これで画像は表示できるようになったと思います。
ちなみに、その他のカスタマイズしたプロフィールを取得するのも、get_user_metaを使えば取得できます。

自分メモ用にサンプルを公開していますが、間違いがあれば教えて頂ければと思います。
WordPressに関する本はこちら

シェアありがとうございます

  • このエントリーをはてなブックマークに追加
  • Pocket

Your Message

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

  • プロフィール

    みたやんです。様々なWebシステムの開発に携わってきました。ICTに関する困りごとなら何なりとお問い合わせください。

    似顔絵はかでる工房様に作成していただきました。

PAGE TOP ↑