Как добавить два javascript файла в шорткод в WordPress? - PullRequest
1 голос
/ 31 января 2020

Я создаю шорткод в functions.php WordPress, чтобы я мог добавить свой javaScript файл в шорткод, чтобы вызвать его на странице моего сайта.

Ответы [ 3 ]

2 голосов
/ 31 января 2020

Вы можете добавить короткий код и вывести содержимое короткого параметра следующим образом:

function stackoverflow_60004550( $atts ) {
    $atts = shortcode_atts(
        array(
            'path' => 'default-path.js',
        ), $atts, 'path' );

    return '<script type="text/javascript" src="'.$atts['path'].'"></script>';
}
add_shortcode( 'jsshortcode', 'stackoverflow_60004550' );

Затем вы можете использовать его в своих сообщениях, где вы хотите показать путь вывода:

[jsshortcode path="https://example.com/complete-path.js"]

Это может работать как на странице, так и на публикации, как описано здесь: https://nabtron.com/how-to-add-javascript-file-in-wordpress-shortcode/

1 голос
/ 03 марта 2020

Я бы не рекомендовал добавлять его таким образом, сначала вам нужно зарегистрировать скрипт с помощью wp_register_script ()

function your_shortcode_wp_enqueue_scripts_fun() {

    wp_register_script( 'cus-js1',get_stylesheet_directory_uri() . '/js/custom.js', array( 'jquery' ), '1.0', true );

}
add_action( 'wp_enqueue_scripts', 'your_shortcode_wp_enqueue_scripts_fun');

После этого вы вызываете его в своем шорткоде с помощью wp_enqueue_script ()

function get_specific_product_shortcode_function($atts){

    extract( shortcode_atts(
        array(
           'id' => '',
            ), $atts )
    );

    ob_start();


    ...
    wp_enqueue_script('cus-js1');
    ...




return ob_get_clean();
}
add_shortcode('get_specific_product_shortcode', 'get_specific_product_shortcode_function');

Это правильный путь к этому

1 голос
/ 31 января 2020

Я бы не советовал добавлять его таким образом. Шорткод фактически добавляется вскоре после визуализации остальной части страницы. Вместо этого я бы добавил javascript с помощью wp_enqueue_scripts на страницу, на которую вы хотите добавить ее, c. Добавьте это к вашей функции:

function load_scripts() {

   global $post;

   if( is_page() || is_single() )
   {
       switch($post->post_name) // post_name is the post slug
       {
           case 'some-page-slug-here':
               wp_enqueue_script('about', get_template_directory_uri() . '/js/some-js-file.js', array('jquery'), '', true);
               break;

       }
   } 
}

add_action('wp_enqueue_scripts', 'load_scripts');
...