我想创建一个[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) 我有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
答案 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}}