2012-04-20 41 views
1

我正在为我的主题编写一个基本的wordpress小部件。我需要在函数小部件中调用我的函数。我的功能正好位于小部件例如外:在wordpress小部件中调用函数

function my_function($arg) { 
    ... 
} 

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

,它会给我错误

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

但是,如果我把小部件函数内部创建my_function,然后它的作品。例如:

function widget($args, $instance) { 

    function my_function($arg) { 
     ... 
    } 

    my_function($arg); 
} 

我想知道为什么这不会工作,如果它被放在窗口小部件功能之外?谢谢。

+0

它是一个类中的'widget'函数吗? – janw 2012-04-20 09:25:17

+0

@janw是的,是的。第一个例子中的 – user966582 2012-04-20 09:51:41

+0

是同一个类中的'my_function'?如果是这样,你打电话是什么? 'self ::,my_function'或'$ this-> my_function'?它被定义为'公共','静态'... – janw 2012-04-20 09:54:47

回答

1

我想你可能在一个PHP类(插件类),当你声明你的功能。

所以试图修改这样的代码:

function my_function($arg) { 
    ... 
} 

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

我认为这可能会更好呢! 让我知道!

+0

太棒了!很高兴知道;) – MavBzh 2012-04-20 10:59:05

+1

我很惊讶地看到,您不是通过使用$ this-> my_function()而是通过$ ClassName-> my_function()来调用此方法,这是不寻常的。 – Hexodus 2013-11-03 20:11:59

相关问题