他のカスタムフィールドの値を使った計算結果の表示

以下の、ショートコードは、カスタムフィールド year に西暦誕生年 month に誕生月 date に誕生日 をそれぞれ入力してある場合

年齢を表示するための カスタムフィールド age に計算用のショートコード [age] を記述して、テンプレートで計算結果を受け取るものです。

functions.php

add_shortcode( 'age' , 'nobita_age' );

function nobita_age() {
	global $post;

	$now	= date( "Ymd" );
	$year	= sprintf( '%04d', get_post_meta($post->ID,'year',true ) );
	$month	= sprintf( '%02d', get_post_meta($post->ID,'month',true ) );
	$date	= sprintf( '%02d', get_post_meta($post->ID,'date',true ) );

	if( ! checkdate($month,$date,$year) ) {
		return 'invalid date';
	}

	$birth	= (int) $year . $month . $date;

	return floor( ($now - $birth) / 10000 );
}

single.php

echo do_shortcode( get_post_meta($post->ID, 'age', true) );

カスタムフィールド値からカスタムフィールドを作成

[emulsion_relate_posts]