0

wordpressの一般設定からラジオボタンの値を表示するために印刷すると、常に以下のエラーが発生します。

F:\wamp\www\plugin-tester\wp-content\themes\twentythirteen\functions.php 行 565 の無効な文字列オフセット 'service'

F:\wamp\www\plugin-tester\wp-content\themes\twentythirteen\functions.php 行 568 の不正な文字列オフセット 'service'

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;
 }

誰かを助けて、間違いを犯したコードを示してください。

4

2 に答える 2

1

$options 変数が配列ではなく文字列である可能性があります。と書く$options['arrayKey']と、$options を配列として扱っています。

デバッグ関数を作成します。

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

$options 変数の 563 ~ 564 行あたりでそれを呼び出します。

my_debug($options);

文字列か配列か、チェックしているような「サービス」キーがあるかどうか、それがどのように見えるかがわかります。

于 2013-10-18T20:41:22.820 に答える
0
 if($options == 'YES') { //line number 565
     echo 'Yes, Service Need'; 
   }
  if($options == 'NO') { // line number 568
    echo 'No Need Service';
}

get_option は、渡したものを返しvalue、キーが見つからない場合はkeyブール値を返します。false値を配列として解釈しています

ここを参照 Get Option

于 2013-10-18T20:51:50.057 に答える