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