我正在尝试使用PHP OOP构建一个插件,我似乎无法实现这第一步。这段代码有问题吗?当我将短代码[rsb-archive]放入wordpress页面时,所有这些都不起作用。
这是代码:
class RSB_Archive {
public function __construct()
{
add_shortcode('rsb-archive', array($this, 'shortcode'));
}
public function shortcode()
{
// Contents of this function will execute when the blogger
// uses the [rsb-archive] shortcode.
echo "print this code";
}
}
这似乎不起作用。有什么想法吗?
此外,是否有人对如何使用PHP调试代码有任何见解。我刚刚开始学习如何使用它。
谢谢!
答案 0 :(得分:3)
您必须首先创建窗口小部件对象的实例。
像这样;<?php
class RSB_Archive {
public function __construct() {
// don't call add_shortcode here
// actually, I worked with wordpress last year and
// i think this is a good place to call add_shortcode
// (and all other filters) now...
}
public function shortcode() {
echo 'doTheDoo';
}
}
$myWidged = new RSB_Archive();
add_shortcode('my-code', array($myWidget, 'shortcode'));
?>
答案 1 :(得分:0)
您忘记创建类RSB_Archive的实例。 构造函数内的代码在创建对象时运行。
class RSB_Archive {
public function __construct()
{
add_shortcode('rsb-archive', array($this, 'shortcode'));
}
public function shortcode()
{
// Contents of this function will execute when the blogger
// uses the [rsb-archive] shortcode.
echo "print this code";
}
}
$obj = new RSB_Archive();