以更简洁的方式访问代码中的自定义字段?

时间:2011-07-10 作者:caseym

我有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. 我想听听任何建议!

2 个回复
最合适的回答,由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\');
现在,请认识到,此函数及其管理“备用”文本的方式可能不适用于您的模板,但这只是一个让您继续使用的想法

SO网友:Pippin

你可以使用get_post_custom()

这没什么不同,但代码少了一点。

$meta = get_post_custom( $post->ID );
if( $meta ) 
{ 
    echo $meta[\'survey_home_type\'];
    echo $meta[\'survey_buy_or_rent\'];
    echo $meta[\'survey_rent\'];
}

结束

相关推荐

获取在Functions.php中设置的变量,并在我的Custom Post模板中回显它们

在我的函数中设置了以下函数。php文件,以允许我的自定义帖子类型“Slideshow”工作。add_action( \'the_post\', \'paginate_slide\' ); function paginate_slide( $post ) { global $pages, $multipage, $numpages; if( is_single() && get_post_type() == \'lom_s