2014-08-30 73 views
0

功能我有以下功能:傳遞參數在WordPress的

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

如何傳遞$i作爲參數傳遞給id_callback

在此先感謝。

+1

見https://wordpress.stackexchange.com/questions/21256/how -to-pass-arguments-from-add-settings-field-to-the-callback-function – ConcurrentHashMap 2014-08-30 15:28:47

+0

謝謝,它的工作! – 2014-08-30 15:59:46

回答

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, array($ this,'id_callback'), 'my-setting -admin', 'setting_section_id', 'id'。$ i ); - 'id'在哪裏。 $我是參數 – 2014-08-30 15:52:42