对象函数作为WordPress中add_shortcode()的回调函数

时间:2013-11-14 02:53:53

标签: php wordpress class object

我创建了一个用于构建自定义帖子类型的类,我试图包含一种为该帖子类型插入特定短代码的方法,但我似乎无法获得add_shortcode()的回调函数来获取函数从创建的对象内部。

我有类似的东西:

class custom_post_type {

    public $post_type_name;

    function __construct($id,$options) {
        //builds the custom post type, etc
        $this->post_type_name = $id;
        $shortcode = new build_shortcode($id,$options);
    }

    public function shortcode_handler($atts) {

    return $this->post_type_name;        

    }
}

class build_shortcode {
     function __construct($id,$options) {
           add_shortcode( $options['shortcode_name'] , array(  $id ,'shortcode_handler') );
     }
}

$options = array(); // a bunch of variables would be defined here to use in the classes
$post_type = new custom_post_type('post_type',$options);

但是当我使用[show-cpt-name]短代码时,它不会运行该函数。 我知道他们在Codex中给出了一个使用类的例子,例如:

add_shortcode( $options['shortcode_name'] , array( 'custom_post_type' ,'shortcode_handler'));

但这不是我想要的,因为我希望回调函数使用来自创建的特定对象的值。

这可能实现吗?

0 个答案:

没有答案