如何将特定WordPress页面的脚本排入队列?

时间:2017-02-11 作者:Yoav Ossia

我是WordPress的新手,首先尝试搜索这个,并找到了一些相关的答案,但没有一个我完全理解。希望您能给出几行具体的指示。我有一个WordPress页面,其中有一个带有几个函数的脚本,然后是另一个使用它们的短脚本。我想在其他一些页面中重用这些函数。因此:

我是否创建单独的js文件?我应该把它放在哪里?在wp includes/js中?

如何将它们公开到页面中(我是否通过注册表和enque放入functions.php?如何准确指定路径?或者是否有其他方法?

有没有办法不公开所有页面,而是公开特定的少数页面?

在使用页面中,如何加载和调用这些函数?

下面是我现在的代码结构。谢谢Yoav公司

<script> 
// an example for the  functions i want to reuse function
foo(x,y) { 
    ... 
    do stuff 
    return z; 
} 
function goo() { 
// <![CDATA[ ..
     do stuff ... 
 // ]]> 
} 
</script> 

<script> 
// an example for the  real
page val x = "something"; 
val y = "other"; 
var message = foo(x, y);

// this will add some  content to the page goo(); 
// this adds some more 
document.write(message); 
</script>

1 个回复
SO网友:user6552940

是的,创建一个单独的JS文件并将其存储在插件或主题文件夹中,让我们调用它example.js. 该文件应包含您需要在多个页面中执行的所有公共函数,页面特定函数应转到单独的文件。

在将代码写入example.js 您需要将其包含在WordPress中,要做到这一点,您需要使用此功能

function my_scripts() {
    // Page ID, title, slug, or array of such.
    // e.g. is_page(\'My page title\') - page title
    // e.g. is_page(2) - page id 
    // e.g. is_page(\'my-page-title\') - page slug
    // e.g. is_page( array( \'page1\', \'page1\')) - in this example an array of page slugs.
    // Check out the references for more on this function.
    if ( is_page( array( \'about-us\', \'contact\', \'management\' ) ) {
        wp_enqueue_script( \'script-name\', \'path/to/example.js\', array(), \'1.0.0\', true );
    }
}
add_action( \'wp_enqueue_scripts\', \'my_scripts\' );
您可以将此函数放入functions.php. 如果文件位于主题目录中,请使用

wp_enqueue_script( \'script-name\', get_template_directory_uri() . \'/example.js\', array(), \'1.0.0\', true );
提示:如果example.js 在插件文件夹中,则需要使用plugin_dir_url( __FILE__ ) 而不是get_template_directory_uri() 哪里__FILE__ 是当前文件路径的PHP常量。

要设置一个变量并在JS文件的不同页面上使用它的值,您需要此函数。

wp_localize_script(\'script-name\', \'array_name\', array(
        \'variable_name\' => \'Variable value\'
    )
);
注意:wp_localize_script 必须在使用注册脚本后调用wp_register_script()wp_enqueue_script().

参考文献:

相关推荐

WP管理员缺少图标、大量的JavaScript错误,但仅当SCRIPT_DEBUG为FALSE时

我可以访问一台Linux/Apache服务器,在那里我试图部署WordPress。为了避免这个错误,我用默认的2017主题和所有禁用的插件对其进行了测试。当我以管理员身份登录到任何wp admin页面时,左侧导航中的大多数图标都会丢失,选中的复选框没有任何复选框(例如),浏览器控制台会充满JavaScript错误。例如,在仪表板页面上,没有任何图标可见,错误控制台的内容如下:Uncaught TypeError: a.widget is not a function at load-scripts