Wordpress中的条件标签:如何根据页面ID或标题运行不同的JS文件



我想根据页面ID为每个WordPress页面运行不同的外部JavaScript文件。

如果页面ID为[1],请运行somescript.js如果页面ID为[15],请运行someotherscript.js如果页面ID为[195],则运行yetanotherscript.js

如果默认,则运行defaultscript.js

有人能告诉我这是如何在WordPress中用条件标签完成的吗?

致问候,

Dimitri Vorontzov

您不应该将脚本调用回显到头。如果你这样做的话,你会破坏插件,破坏依赖关系,并加载多个脚本副本。

在functions.php 中创建函数

 add_action( 'init', 'dim_load_scripts' );
function dim_load_scripts() {
    wp_register_script( 'my-first-script', get_bloginfo( 'stylesheet_directory' ). '/path/to/script.js', array( 'jquery' ), true);  
    //the jquery is only needed if it is a depencency
    wp_register_script( 'my-second-script', get_bloginfo( 'stylesheet_directory' ). '/path/to/script.js', array( 'jquery' ), true); 
    wp_register_script( 'my-third-script', get_bloginfo( 'stylesheet_directory' ). '/path/to/script.js', array( 'jquery' ), true);  
    wp_register_script( 'my-fourth-script', get_bloginfo( 'stylesheet_directory' ). '/path/to/script.js', array( 'jquery' ), true);   
  if (is_page( 22 ) ) {
      wp_enqueue_script( 'my-first-script' );
  } elseif 
     (is_page ( 33 ) ) {
      wp_enqueue_script( 'my-second-script' );
  } elseif 
     (is_page ( 33 ) ) {
    wp_enqueue_script( 'my-third-script' );
  } else 
   if (is_page ( 33 ) ) {
    wp_enqueue_script( 'my-fourth-script' );
    }
}

注释中的代码存在语法错误。已更正:

function dim_load_scripts() { 
wp_register_script( 'homescript.js', get_bloginfo( 'stylesheet_directory' ). '/supersized/js/homescript.js', array( 'jquery' ), true); 
wp_register_script( 'defaultscript.js', get_bloginfo( 'stylesheet_directory' ). '/supersized/js/defaultscript.js', array( 'jquery' ), true);
      if (is_home() ) {
     wp_enqueue_script( 'homescript.js' );   
     } elseif(is_page ( 11 ) ) { 
    wp_enqueue_script( 'defaultscript.js' );     
    }
    } 

这也必须在functions.php中。我不会在wp-header.php 中工作

尝试了建议的解决方案后,我无法使它们发挥作用。我相信Chris的建议是非常可靠的,是我做错了什么,但到目前为止,我不得不求助于胶带解决方案:

我为要运行的脚本的每个版本创建了一个自定义页面模板,并为每个页面分配了一个单独的模板。不是最优雅的解决方案,但它有效。

最新更新