You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 

124 lines
2.6 KiB

<?php
/**
* The public-facing functionality of the plugin.
*
* @link https://horizontes.info
* @since 1.0.0
*
* @package Reuna_Glossario
* @subpackage Reuna_Glossario/public
*/
/**
* The public-facing functionality of the plugin.
*
* Defines the plugin name, version, and two examples hooks for how to
* enqueue the public-facing stylesheet and JavaScript.
*
* @package Reuna_Glossario
* @subpackage Reuna_Glossario/public
* @author Horizontes Coop. <contato@horizontes.info>
*/
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' );
}
/**
* Register the [glossario] shortcode.
*
* @since 1.0.0
*/
public function register_glossario_shortcode()
{
add_shortcode('glossario', array($this, 'handle_glossario_shortcode'));
}
/**
* Handle the [glossario] shortcode.
*
* @since 1.0.0
*/
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();
}
/**
* Output the glossario post modal
*
* @since 1.0.0
*/
public function output_glossario_post_modal($post)
{
add_action('get_footer', function() use ($post) {
require plugin_dir_path(__FILE__) . 'views/post-modal.php';
});
}
}