我有一个WordPress网站,我为它设置了一个自定义post\\u类型以及一些用CMB2 在我的自定义帖子中显示额外内容。
为我的自定义post\\u类型编辑单个项目时,它会设置一个可重复的字段组,以存储价格和其他信息,这些字段是:
price_tag
, product_title
, promo_desc
, promo_price
, check_promo
// 所有字段都存在于CMB2可重复组中,这增加了像我这样的php开发新手的难度。。。
我需要的是一个正确的逻辑来输出promo_price
仅当复选框字段check_promo
值=是,如果=否,则不显示/回显promo_price
字段的值,然后继续逻辑以输出promo_price
字段的值仅当是一周中的某一天时,在这种情况下,我认为WordPress CodexFormatting Date and Time 可能会有帮助。。。
这就是我试图检索和显示它们的方式:
$foodPrices = get_post_meta( $post->ID, \'_prefix_food_price_group\', true ); // repeatable fields group
// A checkbox "Show promo prices?" with values no, yes exists within the metabox _prefix_food_price_group
$promoDay = date(\'l\'); // returns Sunday
<?php
foreach( (array) $foodPrices as $key => $value ){
if(!( isset( $value[\'price_tag\'] ) ))
continue;
echo \'<div class="col-xs-12 col-md-4">\';
echo \'<div id="price-box" class="panel">\';
echo \'<div class="panel-heading text-center">\';
echo \'<div id="prices-current">\';
echo \' \'. $value[\'price_tag\'] .\' \';
// if is Sunday
if ( $promoDay == \'Sunday\') {
// display promo price if checkbox value =yes
if( in_array( \'yes\', $foodPrices ) ) {
echo \' \'. $value[\'promo_price\'] .\' \';
}
}
echo \'</div>\';
echo \'<p>Serve de 1 a 2 pessoas</p>\';
echo \'</div>\';
echo \'<div class="panel-footer">\';
if(!( isset( $value[\'price_title\'] ) ))
continue;
echo \'<div id="pricetitle" class="col-xs-6 text-center">\' . $value[\'price_title\'] . \'</div>\';
if(!( isset( $value[\'price_desc\'] ) ))
continue;
echo \'<div id="pricedesc" class="col-xs-6 text-center">\' . $value[\'price_desc\'] . \'</div>\';
echo \'<div class="clearfix">\';
echo \'</div>\';
echo \'</div>\';
echo \'</div>\';
echo \'</div>\';
}
?>
到目前为止,一切正常,我可以成功地显示主题模板上的字段。然而,似乎我没有正确地循环通过可重复字段和/或设置正确的逻辑来实现这一点。
非常感谢您的帮助。