我有15个自定义字段,用于为我的网站生成评论。目前,我访问每个字段的方式如下:
//Buy or rent, type home, price
if ( get_post_meta(get_the_ID(), \'survey_home_type\', true) ) {
echo get_post_meta(get_the_ID(), \'survey_home_type\', true) . " - ";
}
if ( get_post_meta(get_the_ID(), \'survey_buy_or_rent\', true) ) {
echo get_post_meta(get_the_ID(), \'survey_buy_or_rent\', true) . " for ";
}
if ( get_post_meta(get_the_ID(), \'survey_purchase_price\', true) ) {
echo get_post_meta(get_the_ID(), \'survey_purchase_price\', true);
} elseif ( get_post_meta(get_the_ID(), \'survey_rent\', true) ) {
echo get_post_meta(get_the_ID(), \'survey_rent\', true);
}
有没有更好的方法?我尝试使用get\\u post\\u custom,但它似乎主要处理数组,而不是单个项。我还可以提前声明所有变量,例如
$rent
,
$purchase_price
. 我想听听任何建议!
最合适的回答,由SO网友:tollmanz 整理而成
我会写一个函数来处理这个任务的单调性。
function my_print_meta($id, $key, $alternate = \'\')
{
if($value = get_post_meta($id, $key, true))
echo $value;
else
echo $alternate;
}
请注意,在函数中,我只调用
get_post_meta
一次,并将值存储在变量中,这样就不需要进行两个单独的数据库查询。设置此函数后,我将使用以下方法在模板文件中调用它:
my_print_meta(get_the_ID(), \'survey_home_type\', \'No Home Type\');
现在,请认识到,此函数及其管理“备用”文本的方式可能不适用于您的模板,但这只是一个让您继续使用的想法