如果函数中有页面条件标记,则不使用入队脚本。php

时间:2022-02-10 作者:Biels

这是在特定页面上包含脚本的正确方法吗?

function insert_mapsvg_scripts() {
  wp_enqueue_style( \'mapsvg_css\', site_url(\'/mapsvg/css/mapsvg.css\') );
  wp_enqueue_style( \'nanoscroller_css\', site_url(\'/mapsvg/css/nanoscroller.css\') );
  wp_enqueue_script( \'mousewheel_js\', site_url(\'/mapsvg/js/jquery.mousewheel.min.js\'), array(\'jquery\'), \'\', true );
  wp_enqueue_script( \'nanoscroller_js\', site_url(\'/mapsvg/js/jquery.nanoscroller.min.js\'), array(\'jquery\'), \'\', true );
  wp_enqueue_script( \'mapsvg_js\', site_url(\'/mapsvg/js/mapsvg.min.js\'), array(\'jquery\'), \'\', true );
} 

if( is_page( 37629 ) ) {
    add_action(\'wp_enqueue_scripts\', \'insert_mapsvg_scripts\');
}

1 个回复
SO网友:rudtek

试着用相反的方式做。Add_action 可以始终处于活动状态,并添加if statement 进入函数。像这样:

add_action(\'wp_enqueue_scripts\', \'insert_mapsvg_scripts\');

function insert_mapsvg_scripts() {
  if( is_page( 37629 ) ) {
    wp_enqueue_style( \'mapsvg_css\', site_url(\'/mapsvg/css/mapsvg.css\') );
    wp_enqueue_style( \'nanoscroller_css\', site_url(\'/mapsvg/css/nanoscroller.css\') );
    wp_enqueue_script( \'mousewheel_js\', site_url(\'/mapsvg/js/jquery.mousewheel.min.js\'), array(\'jquery\'), \'\', true );
    wp_enqueue_script( \'nanoscroller_js\', site_url(\'/mapsvg/js/jquery.nanoscroller.min.js\'), array(\'jquery\'), \'\', true );
    wp_enqueue_script( \'mapsvg_js\', site_url(\'/mapsvg/js/mapsvg.min.js\'), array(\'jquery\'), \'\', true );
  }
}
此外,正如@marktruitt评论的那样。通常JS存储在插件或主题文件夹中。如果是自定义主题,队列可能如下所示:

wp_enqueue_script( \'mousewheel_js\', get_template_directory_uri(). \'/mapsvg/js/jquery.mousewheel.min.js\', array(\'jquery\'), \'\', true );
然而,如果您使用的是子主题,则会如下所示:

wp_enqueue_script( \'mousewheel_js\', get_stylesheet_directory_uri(). \'/mapsvg/js/jquery.mousewheel.min.js\', array(\'jquery\'), \'\', true );

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();