如何正确地在WordPress中添加JavaScript和样式

你想学习如何在WordPress中正确添加JavaScript和CSS样式表? 许多DIY用户经常犯的错误,直接调用他们的脚本和样式表的插件和主题。 在本文中,我们将向您展示如何在WordPress中正确添加JavaScript和样式表。 这对刚刚开始学习WordPress主题和插件开发的人来说尤其有用。

在WordPress中正确添加JavaScript和样式

在WordPress中添加脚本和样式表时常见的错误

许多新的WordPress插件和主题开发者犯了直接将他们的脚本或内联CSS添加到他们的插件和主题的错误。

有些误用了 wp_head 函数来加载他们的脚本和样式表。

虽然上面的代码可能看起来更容易,但是在WordPress中添加脚本的方式是错误的,并且会导致更多的冲突。

例如,如果您手动加载jQuery,而另一个插件通过正确的方法加载jQuery,那么您有两次加载jQuery。 如果它被加载到每个页面上,那么这会对WordPress的速度和性能产生负面影响。

也有可能两者是不同的版本,这也可能导致冲突。

话虽如此,让我们来看看添加脚本和样式表的正确方法。

为什么在WordPress中排列脚本和样式?

WordPress有一个强大的开发者社区。 来自世界各地的数千人为WordPress开发主题和插件。

为了确保一切正常,没有人踩到别人的脚趾,WordPress有一个排队系统。 该系统提供了加载JavaScript和CSS样式表的可编程方式。

通过使用wp_enqueue_script和wp_enqueue_style函数,您可以告诉WordPress什么时候加载文件,何处加载,以及它的依赖性。

该系统还允许开发人员利用与WordPress捆绑在一起的内置JavaScript库,而不是多次加载相同的第三方脚本。 这减少了页面加载时间,并有助于避免与其他主题和插件的冲突。

如何正确排队在WordPress脚本?

在WordPress中正确加载脚本非常简单。 下面是一个示例代码,您可以将其粘贴到插件文件或主题的functions.php文件中,以便在WordPress中正确加载脚本。

?PHP
 函数wpb_adding_scripts(){

 wp_register_script('my_amazing_script',plugins_url('amazing_script.js',__FILE__),数组('jquery'),'1.1',true);

 wp_enqueue_script( 'my_amazing_script');
 }
 
 add_action('wp_enqueue_scripts','wpb_adding_scripts');
 ?> 

说明:

我们通过注册我们的脚本开始 wp_register_script() 功能。 这个函数接受5个参数:

  • $处理 – 句柄是脚本的唯一名称。 我们被称为“my_amazing_script”
  • $ SRC – src是脚本的位置。 我们正在使用plugins_url函数来获取我们插件文件夹的正确的URL。 一旦WordPress发现,那么它会在该文件夹中寻找我们的文件名为amazing_script.js。
  • $ DEPS – deps是依赖。 由于我们的脚本使用jQuery,所以我们在依赖区域添加了jQuery。 WordPress会自动加载jQuery,如果它没有被加载到网站上。
  • $版本 – 这是我们的脚本的版本号。 该参数不是必需的。
  • $ in_footer – 我们想在页脚中加载我们的脚本,所以我们已经把值设置为true。 如果你想在头文件中加载脚本,那么你会使它成为假的。

提供了所有参数后 wp_register_script ,我们可以在里面调用脚本 wp_enqueue_script() 这使得一切都发生。

最后一步是使用wp_enqueue_scripts操作钩实际加载脚本。 由于这是一个示例代码,因此我们在其他所有代码中添加了该代码。

如果您将此添加到您的主题或插件,则可以将此操作挂钩放置在脚本实际需要的位置。 这可以让你减少插件的内存占用。

现在有些人可能会想知道为什么我们要先进行脚本注册然后排队? 那么,这可以让其他网站所有者注销您的脚本,而无需修改您的插件的核心代码。

在WordPress中正确排队样式

就像脚本一样,您也可以排列样式表。 看下面的例子:

而不是使用 wp_enqueue_script ,我们现在正在使用 wp_enqueue_style 添加我们的样式表。

注意我们已经使用了 wp_enqueue_scripts 动作钩子样式和脚本。 尽管名字,这个功能适用于两者。

在上面的例子中,我们已经使用了 plugins_url 函数指向我们想要排队的脚本或样式的位置。

但是,如果您在主题中使用排队脚本功能,那么只需使用 get_template_directory_uri() 代替。 如果您正在使用儿童主题,请使用 get_stylesheet_directory_uri()

以下是一个示例代码: