2012-04-20 2 views
1

私はテーマのための基本的なワードプレスウィジェットを書いています。関数ウィジェット内で関数を呼び出す必要があります。 My機能は、例えば、単にウィジェットの外側に位置している:私は、ウィジェット機能の内部では、my_functionを配置する場合ワードプレスウィジェットの関数を呼び出す

function my_function($arg) { 
    ... 
} 

function widget($args, $instance) { 
    my_function($arg); 
} 

、それは私に

Fatal error: Call to undefined function my_function() in... 

がエラーになりますが、それが動作します。例:

function widget($args, $instance) { 

    function my_function($arg) { 
     ... 
    } 

    my_function($arg); 
} 

ウィジェット機能の外に配置されているとこれが機能しないことがわかりますか?ありがとう。

+0

これはクラスの 'widget'関数ですか? – janw

+0

@janwはい、そうです。最初の例の – user966582

+0

は同じクラスの 'my_function'ですか?もしそうなら、あなたはどのように電話していますか? 'self ::、my_function'または' $ this-> my_function'ですか?そしてそれは 'public'、' static'と定義されています.... – janw

答えて

1

私は、あなたがあなたの関数を宣言するときにあなたはPHPクラス(プラグインクラス)にいるかもしれないと思います。

したがって、このようなあなたのコードを変更しよう:

function my_function($arg) { 
    ... 
} 

function widget($args, $instance) { 
    $ClassName->my_function($arg); 
} 

私はそれがその後、より良いかもしれないと思います! お知らせください!

+0

素晴らしい!嬉しいです;) – MavBzh

+1

私は、このメソッドを$ this-> my_function()ではなく、$ ClassName-> my_function()という珍しいメソッドで呼び出すことに驚いています。 – Hexodus

関連する問題