我想为每个WordPress页面运行不同的外部JavaScript文件,具体取决于页面ID。
如果页面ID为[1],请运行somescript.js 如果页面ID是[15],运行someotherscript.js 如果页面ID是[195],请运行yetanotherscript.js
如果是默认值,请运行defaultscript.js
有人可以告诉我这是如何在带有条件标签的WordPress中完成的吗?
致以最诚挚的问候,
迪米特里沃龙佐夫答案 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)
尝试了建议的解决方案之后,我无法让它们发挥作用。我确信克里斯的建议是完全可靠的,而且我做错了什么,但到目前为止,我不得不求助于胶带解决方案:
我为我想要运行的每个脚本版本创建了一个自定义页面模板,并为每个页面分配了一个单独的模板。不是最优雅的解决方案,但它的工作原理。