functions.phpでカスタムフィールドの値を呼び出す方法


WordPressテーマを作成していて便利なfunctions.phpですが関数を作成するのにちょっとつまづいたので、メモをしておきます。

以下の様な関数を作成し、カスタムテンプレートフィールドで入力された値を基に番号指定してさくっと画像を呼び出す関数を作成していたのですが、Undefined variable: post in…などと表示され、「定義されていない変数があるよ!」と警告が出ます。


function echoimg($value) {
 $image_attributes = wp_get_attachment_image_src(get_post_meta($post->ID,"image${value}",true),'large');
 echo $image_attributes;
}

$post->IDの箇所を消すとエラーが無くなることからこのままだと、functions.phpでget_post_metaが使えないようです。
とりあえずGoogleで調べると、フォーラムでそれらしい記述がありました。
http://wordpress.org/support/topic/get_post_meta-in-functionsphp

global $post;を使えって書いてあるので、以下に修正

function echoimg($value) {
global $post;
 $image_attributes = wp_get_attachment_image_src(get_post_meta($post->ID,"image${value}",true),'large');
 echo $image_attributes;
}

上記設定で、カスタムフィールドの値をfunctions.phpで設定した関数で呼び出せました!

参考サイト

http://wordpress.org/support/topic/get_post_meta-in-functionsphp

コメントを残す