0

WordPressプラグイン、OOPスタイルを書いています。管理インターフェースでネイティブな方法でテーブルを作成するには、別のクラスを拡張する必要があります。

myPlugin.php:

class My_Plugin {

    public function myMethod(){
        return $somedata;
    }

    public function anotherMethod(){
        require_once('anotherClass.php');
        $table = new AnotherClass;
        $table->yetAnotherMethod();
    }

}

anotherClass.php:

class AnotherClass extends WP_List_Table {

    public function yetAnotherMethod(){
        // how do I get the returned data $somedata here from the method above?
        // is there a way?

        // ... more code here ...
        // table is printed to the output buffer
    }

}
4

3 に答える 3

1

静的ではないため、その情報を取得するにmyMethod()はの (the?) インスタンスが必要です。My_Plugin

 $myplugin = new My_Plugin();

 ....

 $data = $myplugin->myMethod();

または、その情報をyetAnotherMothod呼び出しに提供します。

 $data = $this->myMethod();
 require_once('anotherClass.php');
 $table = new AnotherClass;
 $table->yetAnotherMethod($data);
于 2013-01-14T14:25:23.397 に答える
1

$somedata関数呼び出しに渡す必要があります。例えば

$table->yetAnotherMethod($this->myMethod());

public function yetAnotherMethod($somedata){
    // do something ...
}
于 2013-01-14T14:26:28.793 に答える
0

メソッドは公開されてmyMethod()いるため、どこからでもアクセスできます。次のように、必要なすべてのファイルが含まれていることを確認してください。

require_once('myPlugin.php')
require_once('anotherClass.php')

次に、次のように書くだけです。

// Initiate the plugin
$plugin = new My_Plugin;

// Get some data
$data = $plugin->myMethod();

// Initiate the table object
$table = new AnotherClass;

// Call the method with the data passed in as a parameter
$table->yetAnotherMethod($data);
于 2013-01-14T14:32:04.793 に答える