get_post_meta with variable

时间:2015-12-08 作者:Toasterdroid

我为正在开发的网站创建了一个自定义帖子类型和相应的元框。由于类似的“产品”有多个条目,一些post Meta重复出现,尽管有一个尾随字母来区分它们。

我想知道是否有一种方法可以按名称调用post类型,同时在post\\u meta名称的末尾加入一个变量,这样就不再需要列出所有的post\\u meta名称,只需要列出一个变量来覆盖我的基础。

我指的是:trmet_tour_status_a, trmet_tour_status_b, trmet_tour_status_c 等等都是我需要显示的自定义字段,如果它们存在的话(至少有七个)。有没有一种方法可以使用jQuery或PHP函数来更改尾随字母,以便只需编写一次代码?

<ul id="dateList">
<?php $dates_a = get_post_meta($post->ID, \'trmet_tourdate_a\', true); ?>
<?php if ( ! empty ( $dates_a ) ) { // if it exists, show... ?>
<li>
    <div class="tourDate"><?php echo $dates_a; ?></div>
    <a href="<?php echo get_post_meta($post->ID, \'trmet_toururl_a\', true); ?>" target="_blank" class="<?php echo get_post_meta($post->ID, \'trmet_tour_status_a\', true); ?>"></a>
</li>
<?php } ?>
在这段代码中,我需要将其读取,以便它也可以查找_b, _c, _d 一直到j。

1 个回复
最合适的回答,由SO网友:Milo 整理而成

您可以使用PHP的range 重复字母。

foreach( range(\'a\', \'j\') as $letter ) {
    if( get_post_meta(get_the_ID(), \'trmet_tour_status_\' . $letter, true) ){
        echo get_post_meta(get_the_ID(), \'trmet_tour_status_\' . $letter, true);
    }
}

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请