*/ class Reuna_Glossario_Public { /** * The ID of this plugin. * * @since 1.0.0 * @access private * @var string $plugin_name The ID of this plugin. */ private $plugin_name; /** * The version of this plugin. * * @since 1.0.0 * @access private * @var string $version The current version of this plugin. */ private $version; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $plugin_name The name of the plugin. * @param string $version The version of this plugin. */ public function __construct( $plugin_name, $version ) { $this->plugin_name = $plugin_name; $this->version = $version; } /** * Register the stylesheets for the public-facing side of the site. * * @since 1.0.0 */ public function enqueue_styles() { wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'dist/css/glossario.css', [], $this->version, 'all' ); } public function register_glossario_shortcode() { add_shortcode('glossario', array($this, 'handle_glossario_shortcode')); } public function handle_glossario_shortcode($atts, $content = null) { $atts = shortcode_atts([ 'id' => '', ], $atts); $args = [ 'post_type' => 'glossario', ]; if ($atts['id']) { $args['page_id'] = $atts['id']; } else { $args['post_title_like'] = $content; } $glossario_query = new WP_Query($args); if (! $glossario_query->found_posts) { return $content; } $post = $glossario_query->get_posts()[0]; do_action('reuna_handle_glossario_shortcode', $post); ob_start(); include plugin_dir_path(__FILE__) . 'views/shortcode-output.php'; return ob_get_clean(); } public function output_glossario_post_modal($post) { add_action('get_footer', function() use ($post) { require plugin_dir_path(__FILE__) . 'views/post-modal.php'; }); } }