我创建了一个用于构建自定义帖子类型的类,我试图包含一种为该帖子类型插入特定短代码的方法,但我似乎无法获得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'));
但这不是我想要的,因为我希望回调函数使用来自创建的特定对象的值。
这可能实现吗?