Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Wordpress rest\u api\u init回调函数中传递参数_Php_Wordpress Rest Api - Fatal编程技术网

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

我有一个我一直在努力解决的问题。当我搜索时,我试图跟随一些例子,但我不是很成功…一直试图跟随这样的东西。。。

  • 如何在回调中传递参数/args
  • 下面的代码确实有效。我想要的逻辑是,当你选择一天(Y-m-d)格式时,它会返回从开始时间到管理用户在wordpress中选择的结束时间的所有可用时间

    这是我的休息时间

        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;
    当你开始的时候