예제 #1
0
/**
 * Register shortcode UI using Shortcake.
 * 
 * @param \Syllables\Shortcode $shortcode Shortcode object.
 *
 * @uses \add_action()
 * @uses \esc_url()
 * @uses \shortcode_ui_register_for_shortcode()
 */
function register_ui(Shortcode $shortcode)
{
    if (!function_exists('shortcode_ui_register_for_shortcode')) {
        return;
    }
    $ui = $shortcode->get_ui();
    if (empty($ui)) {
        return;
    }
    \shortcode_ui_register_for_shortcode($shortcode->get_tag(), $ui);
    \add_action('shortcode_ui_after_do_shortcode', function ($tag) use($shortcode) {
        if (stripos($tag, '[' . $shortcode->get_tag()) === false) {
            return;
        }
        $styles = filter_assets('styles', $shortcode->get_styles(), $tag);
        foreach ($styles as $style) {
            printf('<link rel="stylesheet" href="%s">', \esc_url($style));
        }
        $scripts = filter_assets('scripts', $shortcode->get_styles(), $tag);
        foreach ($scripts as $script) {
            printf('<script type="text/javascript" src="%s">', \esc_url($script));
        }
    });
}
예제 #2
0
 /**
  * Enqueue scripts and styles.
  *
  * @uses \wp_enqueue_script()
  * @uses \wp_enqueue_style()
  */
 public final function enqueue_assets()
 {
     $scripts = filter_assets('scripts', $this->get_scripts(), $this->tag);
     foreach ($scripts as $handle => $script) {
         \wp_enqueue_script($handle, $script, array(), SHORTHAND_VERSION);
     }
     $styles = filter_assets('styles', $this->get_styles(), $this->tag);
     foreach ($styles as $handle => $style) {
         \wp_enqueue_style($handle, $style, array(), SHORTHAND_VERSION);
     }
 }