2014-08-30 1 views
0

을에서 작동합니다 :전달 인자는 내가 기능 다음 한 워드 프레스

public function id_callback($idnumber){} 

그리고 내가 이런 식으로 호출

for($i = 1; $i <= $fieldcount; $i++) 
     { 
      add_settings_field(
       'id' . $i, 
       'ID' . $i, 
       array($this, 'id_callback'), 
       'my-setting-admin', 
       'setting_section_id' 
      ); 
     } 

가 어떻게 id_callback에 인수로 $i 전달할 수 있습니다?

미리 감사드립니다.

+1

참조가 https://wordpress.stackexchange.com/questions/21256/how -to-pass-arguments-from-add-settings-field-to-the-callback-function – ConcurrentHashMap

+0

감사합니다. –

답변

0

귀하의 코드는 특정 컨텍스트와 함께 제공되지 않으므로 약간 추상적입니다. 그러나 귀하를 도와 드리겠습니다. 기본적으로 변수와 그 변수를 설정하는 메소드를 만들어야합니다. 그런 다음 해당 메서드를 사용하여 for 루프의 변수를 변경해야합니다. 여기에 내가 (내가 간단한 사용 사례를 복제 예를 들어 클래스를 생성 한) 무슨 말인지의 빠른 예입니다

<?php 

class Example_Callback { 

    public $id_callback; 

    public function set_id_callback($id_callback) { 
     $this->id_callback = $id_callback; 
    } 

    public function do_something() { 
     // here is your $i: 
     $callback_id = $this->id_callback; 

     // here you can do something with your $callback_id 
    } 

    public function test() { 
     $fieldcount = 5; // usually this should come from somewhere 
     for($i = 1; $i <= $fieldcount; $i++) { 

      $this->set_id_callback($i); 

      add_settings_field(
       'id' . $i, 
       'ID' . $i, 
       array($this, 'do_something'), 
       'my-setting-admin', 
       'setting_section_id' 
      ); 
     } 
    } 

} 

$callback = new Example_Callback(); 
$callback->test(); 

?> 
+0

안녕하세요,이 부분에 인수를 추가하기 만하면됩니다. add_settings_field ( 'id'. $ i, 'ID'. $ i, 배열 ($ this, 'id_callback'), 'my-setting -admin ', 'setting_section_id ', 'id '. $ i ); - 어디에서 '이드'. $ i는 논증이다. –

관련 문제