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

时间:2011-05-27 04:31:35

标签: javascript wordpress conditional

我想为每个WordPress页面运行不同的外部JavaScript文件,具体取决于页面ID。

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

如果是默认值,请运行defaultscript.js

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

致以最诚挚的问候,

迪米特里沃龙佐夫

2 个答案:

答案 0 :(得分:3)

你永远不应该回复标题的脚本调用。如果你这样做的话,你打破插件会搞砸依赖关系并加载多个脚本副本。

在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

中工作

答案 1 :(得分:0)

尝试了建议的解决方案之后,我无法让它们发挥作用。我确信克里斯的建议是完全可靠的,而且我做错了什么,但到目前为止,我不得不求助于胶带解决方案:

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