2014-08-30 74 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