如何使用PHP和wordpress使用面向对象编程实现短代码?

时间:2014-03-03 00:42:40

标签: php wordpress

我正在尝试使用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调试代码有任何见解。我刚刚开始学习如何使用它。

谢谢!

2 个答案:

答案 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'));

?>

This has been answered more thoroughly

答案 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();