WordPress短码处理程序中的函数调用失败

时间:2017-10-09 作者:Mike Brading

我想调用我从短代码处理程序编写的函数。我现在已经简化了代码,但我不知道为什么这样做行不通:

public function handleShortcode($atts) {
    return X();
}

private function X()
{
    return \'Hi world\';
}
但是,如果我尝试:

public function handleShortcode($atts) {
    return \'Hello World!\';
}
它起作用了。

这可能是一个愚蠢的问题,但有人能解释第一个例子失败的原因吗?

2 个回复
SO网友:Jacob Peattie

你回来了X(), 但是你的X() 函数似乎位于类中。大概和handleShortcode(). 因此,您需要以调用类内函数的正常方式调用它:

public function handleShortcode($atts) {
    return $this->X();
}

private function X()
{
    return \'Hi world\';
}
如果你根本不在课堂上,你需要摆脱privatepublic:

function handleShortcode($atts) {
    return X();
}

function X()
{
    return \'Hi world\';
}

SO网友:janh

这些看起来像对象的方法。如果它们位于同一对象中,请使用$this->X(), 否则,您将不得不模拟->X()的行为,因为您不能对对象调用私有方法。

结束

相关推荐

Shortcode IF statment help

下面是我一直致力于运行短代码的代码。我已经尝试实施if() 声明,但没有任何效果。我有两个输出。我想做的是,如果属性(\'img\', \'user\', \'text\') 显示在快捷码中$output1.否则,如果属性(\'img\', \'text\', \'length\', \'material\', \'power\') 显示在快捷码中$output2.function hire_equipment_func($atts) { extract( s