get_name(), array( $this, 'add_shortcode_callback' ) ); } abstract public function get_name(); abstract public function generate( $settings ); public function rep_item_id() { return $this->get_name(); } protected function default_args() { return array(); } public function add_shortcode_callback( $atts ) { $settings = shortcode_atts( $this->default_args(), $atts, $this->get_name() ); return $this->generate( $settings ); } }