如何只在一周中的某一天显示WordPress自定义域?

时间:2015-09-13 作者:Adriano Monecchi

我有一个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>\';
 }
?> 
到目前为止,一切正常,我可以成功地显示主题模板上的字段。然而,似乎我没有正确地循环通过可重复字段和/或设置正确的逻辑来实现这一点。

非常感谢您的帮助。

1 个回复
SO网友:cybmeta

您没有正确检查当前日期。您需要使用current_time() funciton to get current datetime according to WordPress configuration. 然后,使用PHPdate() 您可以检查当前日期是星期几:

// Get current date time of WordPress in Unix timestamp format
$timestamp = current_time( \'timestamp\' );

// Get day of the week of current date
// See http://php.net/manual/es/function.date.php
$dw = date( "w", $timestamp);

// Check day of the week: 0 for Sunday to 6 for Saturday
if( $dw == 0 ) {

    // Display content if day of the week is Sunday

}

相关推荐

如何通过jQuery Datepicker搜索帖子?

我正在WordPress网站上工作,我有自己的搜索筛选页面,在那里我添加了jquery日期选择器,现在我想按日期选择器搜索帖子?Html Codescript> $(function() { jQuery( \"#datepicker-13\" ).datepicker({ dateFormat : \"yy-mm-dd\" }); $(\"#datepicker-13\").datepicker().datepick