根据星期几插入文本的简码

时间:2018-06-28 14:10:30

标签: wordpress datetime shortcode

我想创建一个[time]的简码,该代码将每天显示6:00-7:00AM(星期六或星期日除外),因为这两天将显示时间8:00-9:00AM。我该怎么办?

这就是我想出的...

// [time]  
function displaytime(){  
if (date('l') == 'Saturday' || date('l') == 'Sunday')){
   echo '8:00-9:00AM';
}else{ //it's a weekday
echo '6:00-7:00AM';
   }
}  
add_shortcode('time', 'displaytime'); 
// end display time

目前的样子...(星期六和星期日旁边,应该显示8:00-9; 00AM) enter image description here 我有7个简码来显示一周的接下来7天。那么也许是什么原因导致它无法正常工作?

// [tomorrow]  
function displaydate_tomorrow(){  
    return date('D, M j.', strtotime('+1 day')); 
}  
add_shortcode('tomorrow', 'displaydate_tomorrow'); 
// end tomorrows date
// [tomorrow2]  
function displaydate_tomorrow2(){  
    return date('D, M j.', strtotime('+2 day')); 
}  
add_shortcode('tomorrow2', 'displaydate_tomorrow2'); 
// end tomorrows date2
// [tomorrow3]  
function displaydate_tomorrow3(){  
    return date('D, M j.', strtotime('+3 day')); 
}  
add_shortcode('tomorrow3', 'displaydate_tomorrow3'); 
// end tomorrows date3
// [tomorrow4]  
function displaydate_tomorrow4(){  
    return date('D, M j.', strtotime('+4 day')); 
}  
add_shortcode('tomorrow4', 'displaydate_tomorrow4'); 
// end tomorrows date4
// [tomorrow5]  
function displaydate_tomorrow5(){  
    return date('D, M j.', strtotime('+5 day')); 
}  
add_shortcode('tomorrow5', 'displaydate_tomorrow5'); 
// end tomorrows date5
// [tomorrow6]  
function displaydate_tomorrow6(){  
    return date('D, M j.', strtotime('+6 day')); 
}  
add_shortcode('tomorrow6', 'displaydate_tomorrow6'); 
// end tomorrows date6
// [tomorrow7]  
function displaydate_tomorrow7(){  
    return date('D, M j.', strtotime('+7 day')); 
}  
add_shortcode('tomorrow7', 'displaydate_tomorrow7'); 
// end tomorrows date7
// [time]  
function displaytime(){  
    if (date('D') == 'Saturday' || date('D') == 'Sunday'){
        return '8:00-9:00AM';
    }else{ //it's a weekday
        return '6:00-7:00AM';
    }
}  
add_shortcode('time', 'displaytime'); 
// end display time

1 个答案:

答案 0 :(得分:2)

它在the docs中表示:

  

请注意,由简码调用的函数绝不能产生任何形式的输出。简码函数应返回用于替换简码的文本。

对此进行尝试,如果有任何问题,请立即进行评论:

date('l')
在问题更新后进行

编辑:之所以在所有7个地方显示相同的时间,是因为您的初始代码测试// use examples: [nextdaytime day="+1 day"] [nextdaytime day="+2 day"] function displaynextdaytime($atts){ $originalZone = date_default_timezone_get(); //save timezone date_default_timezone_set(get_option('timezone_string')); //set it to your admin value $time = strtotime($atts['day']); //time for the date() function based on our 'day' attribute if (date('l', $time) == 'Saturday' || date('l', $time) == 'Sunday'){ $timeStr = '8:00-9:00AM'; }else{ //it's a weekday $timeStr = '6:00-7:00AM'; } $returnVal = date('D, M j.', $time) . ' ' . $timeStr; date_default_timezone_set($originalZone) //restore original zone return $returnVal; } add_shortcode('nextdaytime', 'displaynextdaytime'); // end display next day and time 仅考虑当天,因此将显示'6:如果当天不是周六或周日,则在各处“ 00-7:00AM”,否则在各处“ 8:00-9:00AM”。除此之外,当7天中只有1个足够,而最后一个时间也应该合并时,您正在创建8个不同的简码,否则无法知道我们考虑的是哪一天。

编辑2 :添加了代码以设置该功能的wordpress时区设置,然后恢复为该功能之前的原始设置。

所有代码都更新为单个短代码(现在您将学习为短代码添加属性!):

{{1}}