搜索
首页CMS教程WordPressWordPress中的脚本和样式

WordPress中的脚本和样式

钥匙要点

    WordPress中的
  • 启用脚本和样式对于保持性能和防止不同脚本和样式之间的冲突至关重要。添加脚本的推荐方法是使用admin_enqueue_script钩子,将处理程序前缀以避免冲突并确保脚本始终加载。
  • >可以使用WP_Deregister_style函数删除引起错误或冲突的不必要脚本。在解决问题时,这在调试模式中特别有用。
  • >
  • >使用短代码通常需要将脚本注入页面。这可以通过在the_content过滤器上注册回调并测试是否包含短码来实现这一点。但是,该解决方案可能会在高负载网站上存在性能问题。一个更复杂的解决方案涉及使用作曲家加载类并在帖子内容中注册短码。
  • 在开发WordPress插件和主题一段时间后,您开始越来越多地思考主题性能以及对客户造成的问题。这些问题之一是入围脚本和样式。在本文中,我们将介绍针对不同用例的起点脚本和最佳实践的基础知识。您可以检查本文以获取有关管理WordPress资产的初学者概述。

>入围脚本和样式

WordPress中的脚本和样式>如果您需要一些CSS或JavaScript代码要注入网站的某些页面,我们倾向于将它们添加到同一标记文件中,或者使用直接URL添加它们。

但是,这不是添加脚本的推荐方法,并且缓存插件不会优化和缓存您的资产以提高网站性能。我们需要使用Admin_enqueue_scripts钩。

> wp_enqueue_script方法的第一个参数是脚本处理程序名称,我们应该始终前缀处理程序以避免任何冲突,并确保我们的脚本始终加载。
// ...
<script type="text/javascript">
    // some JS code
</script>

<style type="text/css">
    // some CSS code
</style>
//...

<script type="text/javascript" src="<?=%20plugins_url('assets/js/main.js')%20?>"></script>
当前的解决方案不是完美的,我们的脚本都包含在每个后端页面中。我们可以使用传递给回调函数的$挂接变量来测试特定页面。>

>现在,我们的脚本仅包含在设置和新的帖子页面中。我们只能在用户创建一个新页面时才能使用我们的样式。>
add_action( 'admin_enqueue_scripts', function($hook) {
    $pluginPrefix = "my-prefix";
    wp_enqueue_script( "{$pluginPrefix}main-js", plugins_url('assets/js/main.js'), ['jquery'] );
} );

>删除不必要的脚本

>大多数开发人员不在乎在需要时起脚本的启动,这就是为什么我们总是会遇到意外的错误和奇怪的造型问题的原因。当注意到脚本引发错误或引起冲突时,您可以在添加自己的脚本之前将其删除,这通常在调试模式中很有用。

>
// ...
<script type="text/javascript">
    // some JS code
</script>

<style type="text/css">
    // some CSS code
</style>
//...

<script type="text/javascript" src="<?=%20plugins_url('assets/js/main.js')%20?>"></script>

使用快速代码

大多数插件和主题都提供了一组与网站交互的快捷代码,有时它们需要将脚本注入页面。可悲的是,我们无法像以前在后端那样测试前页面。

>

实现此目的的一种简单方法是在the_content过滤器上注册回调,并测试它是否包含您的短码。如果它返回是,您可以加入您的脚本,否则什么都不做。

>
add_action( 'admin_enqueue_scripts', function($hook) {
    $pluginPrefix = "my-prefix";
    wp_enqueue_script( "{$pluginPrefix}main-js", plugins_url('assets/js/main.js'), ['jquery'] );
} );

上面的代码效果很好,并且只会为包含快捷代码的帖子中提起我们的脚本。但是,该解决方案在高负载网站上存在一些严重的性能问题。我们将为此问题创建一个更复杂的解决方案。

>

如果您还没有使用作曲家来加载课程,我建议您开始这样做。我们的插件composer.json文件看起来如下:

>
add_action( 'admin_enqueue_scripts', function($hook) {
    if ( !in_array($hook, array("options-general.php", "post-new.php")) )
        return;

    $pluginPrefix = "my-prefix";
    wp_enqueue_script( "{$pluginPrefix}main-js", plugins_url('assets/js/main.js'), ['jquery'] );
} );

src/shertcodes/helloshortcode.php类保存我们的短码定义。

add_action( 'admin_enqueue_scripts', function($hook) {
    if ( $hook == "post-new.php" && isset($_GET['post_type']) && $_GET['post_type'] == "page" )
    {
        $pluginPrefix = "my-prefix";
        wp_enqueue_script( "{$pluginPrefix}main-js", plugins_url('assets/js/main.js'), ['jquery'] );
    }
} );

运行方法将返回我们的快捷代码的HTML标记,并在使用快捷代码时将加载的静态属性设置为true。 >>

>当然,我们可以避免将此代码放入主插件文件中,但是我们将保持简单且可读的内容。

$短代码变量包含可用的快捷代码列表。第一个循环将注册我们的短代码,并将运行方法成为处理程序。接下来,我们将使用WP_FOOTER钩在关闭身体标签之前将我们的快捷代码脚本勾勒出来。
add_action( 'admin_enqueue_scripts', function($hook) {
    $unautorized_styles = [
        'script1',
        'another-script'
    ];

    foreach ( $unautorized_styles as $handle )
    {
        wp_deregister_style( $handle );
    }

    // enqueue my scripts
} );

>您现在可以创建一个包含我们的短码的新页面,并检查我们的脚本是否正确加载。

>

结论

这篇简短的文章是有关如何提起插件和主题脚本的摘要,也是避免将它们加载到网站上的每个页面中的最佳方法。如果您有任何疑问或评论,请在下面发布它们,我会尽力回答它们!

经常询问有关在WordPress中起义脚本和样式的问题(常见问题解答)

>在WordPress中启动脚本和样式的目的是什么?它有助于防止主题或插件可能使用的不同脚本和样式之间的冲突。通过入学,您是在告诉WordPress何时加载脚本/样式,加载脚本/样式以及它依赖的其他脚本/样式。

>

>如何在WordPress中加入脚本?

>

>在WordPress中加入脚本,您需要使用wp_enqueue_script()函数。此功能至少需要两个参数:句柄(脚本的唯一名称)和SRC(脚本的URL)。您还可以指定其他参数,例如依赖项,版本以及是否将脚本加载到页脚中。

>

> wp_enqueue_script()和wp_register_script()?在WordPress上注册脚本,但是有一个关键区别。 wp_register_script()仅注册脚本,并且不加入它。这意味着脚本将不会打印,除非以后使用wp_enqueue_script()拼写。另一方面,WP_ENQUEUE_SCRIPT()寄存器并升级脚本,这意味着它将在HTML中打印。

我可以在WordPress中加入样式吗?

是的,是的,您可以在WordPress Styles中使用WordPress Styles On WordPress Styles使用wp_enqueue_style()函数。此功能与WP_ENQUEUE_SCRIPT()相似,但是它用于样式表,而不是脚本。

什么是什么'wp_enque_scripts的动作钩?您的脚本和样式。当WordPress即将在HTML中打印脚本和样式时,此钩被称为。通过挂接,您可以确保在适当的时间出现脚本和样式。

>

>为什么在启动脚本或样式时指定依赖项很重要?

>

指定依赖项确保您的脚本确保您的脚本或样式以正确的顺序加载。如果您的脚本取决于另一个脚本(例如jQuery),则WordPress将确保在您的脚本之前加载jQuery。使用WP_DEQUEUE_SCRIPT()或WP_DEQUEUE_STYLE()函数的WordPress中的脚本或样式。如果您想停止加载脚本或样式,这很有用。使用“ admin_enqueue_scripts”动作钩的区域。这与“ wp_enqueue_scripts'挂钩相似,但它用于管理区域而不是前端。

>

>什么是'wp_print_scripts的动作钩? Hook是一种较旧的钩子,用于加入脚本。但是,不建议再使用此钩子,因为它可能导致脚本加载顺序的问题。您应该使用“ wp_enqueue_scripts”挂钩。

>我可以有条件地辅助脚本和样式吗?例如,如果要查看某个页面,则可以使用is_page()函数仅在脚本或样式中使用脚本。这对于性能很有用,因为它可以防止不必要的脚本和样式被加载。

以上是WordPress中的脚本和样式的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
WordPress的插件生态系统如何增强其CMS功能?WordPress的插件生态系统如何增强其CMS功能?May 14, 2025 am 12:20 AM

WordPressPluginsscmscmscapabilities byferingCustomization和Functionality.1)超过50,000pluginsallowuserstalostailortheortheortheortheirsiteirsiteforseo,e-Commerce和security.2)pluginScaneCanextendCorefeatures,likeaddingcustostostposttypes.3 bullycanc.3)

WordPress适合电子商务吗?WordPress适合电子商务吗?May 13, 2025 am 12:05 AM

是的,WordPress非常适合做电商。 1)通过WooCommerce插件,WordPress可以快速变成功能全面的在线商店。 2)需要关注性能优化和安全性,定期更新和使用缓存、安全插件是关键。 3)WordPress提供了丰富的定制选项,提升用户体验和SEO优化效果显着。

如何在 Yandex 网站管理员工具中添加您的 WordPress 网站如何在 Yandex 网站管理员工具中添加您的 WordPress 网站May 12, 2025 pm 09:06 PM

您想将您的网站连接到Yandex网站管理员工具吗?Google搜索控制台、Bing和Yandex等网站管理员工具可帮助您优化网站、监控流量、管理robots.txt、检查网站错误等。在本文中,我们将分享如何在Yandex网站管理员工具中添加您的WordPress网站来监控您的搜索引擎流量。什么是Yandex?Yandex是一个位于俄罗斯的流行搜索引擎,类似于Google和Bing。您可以在Yandex中优

如何修复 WordPress 中的 HTTP 图片上传错误(简单)如何修复 WordPress 中的 HTTP 图片上传错误(简单)May 12, 2025 pm 09:03 PM

您需要修复WordPress中的HTTP图片上传错误吗?当您在WordPress中创建内容时,此错误可能会特别令人沮丧。当您使用内置WordPress媒体库将图像或其他文件上传到CMS时,通常会发生这种情况。在本文中,我们将向您展示如何轻松修复WordPress中的HTTP图片上传错误。WordPress媒体上传过程中出现HTTP错误的原因是什么?当您尝试使用WordPress媒体上传器将文件上传到Wo

如何修复添加媒体按钮在 WordPress 中不起作用的问题如何修复添加媒体按钮在 WordPress 中不起作用的问题May 12, 2025 pm 09:00 PM

最近,我们的一位读者报告说,他们的WordPress网站上的“添加媒体”按钮突然停止工作。此经典编辑器问题不会显示任何错误或警告,这使用户不知道为什么他们的“添加媒体”按钮不起作用。在本文中,我们将向您展示如何轻松修复WordPress中的“添加媒体”按钮不起作用的问题。是什么导致WordPress“添加媒体”按钮停止工作?如果您仍在使用旧的经典WordPress编辑器,那么“添加媒体”按钮允许您将图像、视频等插入博客文章中。

如何设置、获取和删除 WordPress Cookie(像专业人士一样)如何设置、获取和删除 WordPress Cookie(像专业人士一样)May 12, 2025 pm 08:57 PM

您想了解如何在WordPress网站上使用cookie吗?Cookie是在用户浏览器中存储临时信息的有用工具。您可以使用此信息通过个性化和行为定位来增强用户体验。在本终极指南中,我们将向您展示如何像专业人士一样设置、获取和删除WordPresscookie。注意:这是一个高级教程。它要求您精通HTML、CSS、WordPress网站和PHP。什么是Cookie?Cookie是用户访问网站时创建并存储在用户浏览

如何修复 WordPress 429 请求过多错误如何修复 WordPress 429 请求过多错误May 12, 2025 pm 08:54 PM

您是否在WordPress网站上看到“429请求过多”错误?此错误消息意味着用户向您网站的服务器发送了太多HTTP请求。此错误可能会非常令人沮丧,因为很难找出导致该错误的原因。在本文中,我们将向您展示如何轻松修复“WordPress429TooManyRequests”错误。是什么原因导致WordPress429请求过多错误?“429TooManyRequests”错误的最常见原因是用户、机器人或脚本尝试向网站

WordPress作为大型网站的CMS有多可扩展?WordPress作为大型网站的CMS有多可扩展?May 12, 2025 am 12:08 AM

WordPressCanHandLeLArgeWebsitesWithCareFulplanningAndOptimization.1)USECACHINGTOREDUCESERVERVERLOAD.2)优化YourdataBaseRegularly.3)actizeyourdatabaseregularly.3)ackdntododistibutecontent.4))

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。