无法从Wordpress常规设置中获取单选按钮值

时间:2013-10-18 20:01:07

标签: php wordpress

当打印到wordpress常规设置显示单选按钮值时,我一直在低于错误:

  

第565行的F:\ wamp \ www \ plugin-tester \ wp-content \ themes \ twentythirteen \ functions.php中的非法字符串偏移'服务'

     

第568行的F:\ wamp \ www \ plugin-tester \ wp-content \ themes \ twentythirteen \ functions.php中的非法字符串偏移'服务'

这是我在function.php文件中添加的代码:

add_filter('admin_init', 'myservice_register_function');
function myservice_register_function(){

register_setting('general', 'my_service', 'esc_attr');

add_settings_field('my_service', '<label for="service_need">'.__('Do You need My    Service' , 'my_service' ).'</label>' , 'service_function', 'general');
}

 function service_function(){
   $options = get_option( 'my_service', '');
   //  $options = get_settings( 'my_service');

   if($options['service'] == 'YES') { //line number 565
     echo 'Yes, Service Need'; 
   }
  if($options['service'] == 'NO') { // line number 568
    echo 'No Need Service';
}


  $html = '<input type="radio"  name="my_service[service]" value="YES"/>'; 
  $html .= '<label> NEED </label>'; 

  $html .= '<input type="radio"  name="my_service[service]" value="NO"/>'; 
  $html .= '<label > NO NEED </label>'; 

  echo $html;
 }

请帮助某人并在我错误的地方注明我的代码。

2 个答案:

答案 0 :(得分:1)

你的$ options变量可能是一个字符串,而不是一个数组。当您编写$options['arrayKey']时,您将$ options视为数组。

制作调试功能:

function my_debug($o){
    echo "<pre>";
    print_r($o);
    echo "</pre>";
}

在第563-564行的$ options变量中调用它:

my_debug($options);

你会看到它的样子,无论是字符串还是数组,以及它是否有“服务”键,就像你正在检查一样。

答案 1 :(得分:0)

 if($options == 'YES') { //line number 565
     echo 'Yes, Service Need'; 
   }
  if($options == 'NO') { // line number 568
    echo 'No Need Service';
}

get_option返回您传递的value的{​​{1}}和未找到的情况下的布尔key。您将值解释为数组

请参阅此处 Get Option