web-dev-qa-db-ja.com

ショートコード内でwp_enqueue_scriptが機能しない

<?php

class OrdersShortcode {

    function __construct() {
        add_shortcode('order_ajax_form', array(&$this, 'order_ajax_form'));
    }

    function my_enqueued_assets()
    {
        wp_enqueue_script('my-script', "//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js");
        wp_enqueue_script('my-script2', plugin_dir_url(__FILE__) . 'js/easyResponsiveTabs.js');
        wp_enqueue_script('my-script3', plugin_dir_url(__FILE__) . 'js/fb.js');
        wp_enqueue_script('my-script4', plugin_dir_url(__FILE__) . 'js/verify.js');
        wp_enqueue_style('my-style', plugin_dir_url(__FILE__) . 'css/style.css');
        wp_enqueue_style('my-style2', plugin_dir_url(__FILE__) . 'css/easy-responsive-tabs.css');
    }

    function order_ajax_form() {
        add_action('wp_enqueue_scripts', array( $this, 'my_enqueued_assets'));

        include(dirname(dirname(__FILE__)) . '/views/form.php');
    }
}

ショートコード関数内でwp_enqueue_scriptsを使用しようとしています。動作していません。

2
Prakash
$shortcode = new Shortcode_Class();
class Shortcode_Class
{
    /**
     * If you should add the script or not
     *
     * @var bool
     */
    private $addScript = false;

    public function __construct()
    {
        add_shortcode('test_shortcode', array($this, 'shortcode_content'));

        // wp_enqueue_scripts
        // If you use the below the CSS and JS file will be added on everypage
        // add_action( 'wp_enqueue_scripts', array($this, 'add_shortcode_scripts'));

        // Add styles and scripts to the page
        add_action('wp_footer', array($this, 'add_shortcode_scripts'));
    }

    public function shortcode_content( $attr, $content )
    {
        $this->addScript = true;
        ?>
        <h1>Shortcode Content Being Displayed</h1>
        <?php
    }

    public function add_shortcode_scripts()
    {
        if(!$this->addScript)
        {
            return false;
        }

        wp_enqueue_script('shortcode-js', get_stylesheet_directory_uri() . '/js/shortcode.js', false);
    }
}

これは助けた!

1
Prakash