Php 如何在Wordpress rest\u api\u init回调函数中传递参数
我有一个我一直在努力解决的问题。当我搜索时,我试图跟随一些例子,但我不是很成功…一直试图跟随这样的东西。。。Php 如何在Wordpress rest\u api\u init回调函数中传递参数,php,wordpress-rest-api,Php,Wordpress Rest Api,我有一个我一直在努力解决的问题。当我搜索时,我试图跟随一些例子,但我不是很成功…一直试图跟随这样的东西。。。 如何在回调中传递参数/args 下面的代码确实有效。我想要的逻辑是,当你选择一天(Y-m-d)格式时,它会返回从开始时间到管理用户在wordpress中选择的结束时间的所有可用时间 这是我的休息时间 add_action( 'rest_api_init', function () { register_rest_route( 'myplugin/v1', '/day
add_action( 'rest_api_init', function () {
register_rest_route( 'myplugin/v1', '/day/(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );
add_操作('rest_api_init',函数(){
注册rest路由('myplugin/v1','/day/(?P\d+),数组(
'方法'=>'获取',
“回调”=>“我的超级棒”,
) );
} );
这是回调函数
function my_awesome_func($request) {
$selected_day = '2020-05-05';
$startTime = esc_attr( get_option( 'start_time' )); //this works can hard coded as (10:30)
$endTime = esc_attr( get_option( 'end_time' )); // also works can hard coded (20:00)
$minutesApart = esc_attr( get_option( 'minutes_between')); //also works hard coded (15)
$data = array();
$exploded_daydate = explode('-', $selected_day);
$start_time_raw = $startTime;
$end_time_raw = $endTime;
$start_time_Exploded = (explode(":",$start_time_raw));
$end_time_Exploded = (explode(":",$end_time_raw));
$loopStart = mktime($start_time_Exploded[0], $start_time_Exploded[1], 0, $exploded_daydate[1], $exploded_daydate[2], $exploded_daydate[0]);
$loopEnd = mktime($end_time_Exploded[0], $end_time_Exploded[1], 0, $exploded_daydate[1], $exploded_daydate[2], $exploded_daydate[0]);
$i=0;
while ($loopStart <= $loopEnd) {
$data[$i] = date("Y-d-m h:i:s",$loopStart);
$loopStart = $loopStart + ($minutesApart *60);
$i++;
}
return $data;
}
函数my\u awesome\u func($request){
$selected_day='2020-05-05';
$startTime=esc_attr(get_选项('start_time'));//这项工作可以硬编码为(10:30)
$endTime=esc_attr(get_选项('end_time'));//也可以硬编码(20:00)
$minutesApart=esc_attr(get_选项('minutes_between');//也可以硬编码工作(15)
$data=array();
$exploded_daydate=exploded('-',$selected_day);
$start\u time\u raw=$startTime;
$end\u time\u raw=$endTime;
$start\u time\u Exploded=(explode(“:”,$start\u time\u raw));
$end_time_Exploded=(explode(“:”,$end_time_raw));
$loopStart=mktime($start\u time\u Exploded[0],$start\u time\u Exploded[1],0,$Exploded\u daydate[1],$Exploded\u daydate[2],$Exploded\u daydate[0]);
$loopEnd=mktime($end\u time\u Exploded[0],$end\u time\u Exploded[1],0,$Exploded\u daydate[1],$Exploded\u daydate[2],$Exploded\u daydate[0]);
$i=0;
虽然($loopStart没关系……我已经找到了……这是我一直在寻找的解决方案
add_action( 'rest_api_init', function () {
register_rest_route( 'myplugin/v1', '/day/(?P<day>([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])))', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );
function my_awesome_func($request) {
$selected_day = $request['day'];
$startTime = esc_attr( get_option( 'start_time' ));
$endTime = esc_attr( get_option( 'end_time' ));
$minutesApart = esc_attr( get_option( 'minutes_between'));
$data = array();
$exploded_daydate = explode('-', $selected_day);
$start_time_raw = $startTime;
$end_time_raw = $endTime;
$start_time_Exploded = (explode(":",$start_time_raw));
$end_time_Exploded = (explode(":",$end_time_raw));
$loopStart = mktime($start_time_Exploded[0], $start_time_Exploded[1], 0, $exploded_daydate[1], $exploded_daydate[2], $exploded_daydate[0]);
$loopEnd = mktime($end_time_Exploded[0], $end_time_Exploded[1], 0, $exploded_daydate[1], $exploded_daydate[2], $exploded_daydate[0]);
$i=0;
while ($loopStart <= $loopEnd) {
$data[$i] = date("Y-m-d h:i:s",$loopStart);
$loopStart = $loopStart + ($minutesApart *60);
$i++;
}
return $data;
}
add_操作('rest_api_init',函数(){
注册_rest_route('myplugin/v1','/day/(?P([12]\d{3}-(0[1-9]| 1[0-2])-(0[1-9]|[12]\d | 3[01]),数组(
'方法'=>'获取',
“回调”=>“我的超级棒”,
) );
} );
函数my_awesome_func($request){
$selected_day=$request['day'];
$startTime=esc_attr(获取选项(“开始时间”);
$endTime=esc_attr(获取选项(“结束时间”);
$minutesApart=esc_attr(获取选项('minutes_between'));
$data=array();
$exploded_daydate=exploded('-',$selected_day);
$start\u time\u raw=$startTime;
$end\u time\u raw=$endTime;
$start\u time\u Exploded=(explode(“:”,$start\u time\u raw));
$end_time_Exploded=(explode(“:”,$end_time_raw));
$loopStart=mktime($start\u time\u Exploded[0],$start\u time\u Exploded[1],0,$Exploded\u daydate[1],$Exploded\u daydate[2],$Exploded\u daydate[0]);
$loopEnd=mktime($end\u time\u Exploded[0],$end\u time\u Exploded[1],0,$Exploded\u daydate[1],$Exploded\u daydate[2],$Exploded\u daydate[0]);
$i=0;
当你开始的时候