Questions tagged «wp-enqueue-script»

如果尚未包括脚本并且已注册所有依赖项,则根据脚本依赖项在适当的时间将脚本文件链接到生成的页面。您可以将脚本与先前使用wp_register_script()函数注册的句柄链接,或者为该函数提供链接脚本所需的所有参数。这是将JavaScript链接到WordPress生成的页面的推荐方法。

8
存在简码时,排队脚本/样式
注册/排队脚本和/或样式以便在插件中使用的想法是什么? 我最近制作了一个插件简单插件,以使用简码添加用户头像/ gravatar。我有不同的样式选项来显示化身(正方形,圆形等),并决定将CSS直接放入简码本身。 但是,我现在意识到这不是一个好方法,因为每次在页面上使用简码时,它将重复css。我在该站点上还看到了其他几种方法,并且wp Codex甚至有自己的两个示例,因此很难知道哪种方法最一致,最快。 这是我目前知道的方法: 方法1:直接包含在简码中- 这是我目前在插件中所做的,但由于重复代码而显得不太好。 class My_Shortcode { function handle_shortcode( $atts, $content="" ) { /* simply enqueue or print the scripts/styles in the shortcode itself */ ?> <style type="text/css"> </style> <?php return "$content"; } } add_shortcode( 'myshortcode', array( 'My_Shortcode', 'handle_shortcode' ) ); 方法2:使用类有条件地排队脚本或样式 class My_Shortcode { static …

3
我什么时候应该将wp_register_script()与wp_enqueue_script()结合使用而仅将wp_enqueue_script()与?
当您需要使用时,我很难理解wp_register_script()。目前,我只使用以下内容: add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) ); function enqueue() { $handle = 'some-handle'; $js = 'http://example.com/my.js'; wp_register_script( $handle, $js ); wp_enqueue_script( $handle ); } 我已经读了很多书(Codex,博客等),但是我不太明白什么时候应该首先注册,或者什么时候应该入队。作为示例,我注意到TwentyTwelve没有注册任何样式或脚本,而只是将它们排入队列。

9
如何在某些/ wp-admin页面上加入样式/脚本?
我有两个简单的函数,它们使用wp_enqueue_style()和加载东西wp_enqueue_script(),如下所示: function admin_custom_css() { wp_enqueue_style( 'stylesheet_name', 'stylesheet.css') }; function admin_custom_js { wp_enqueue_script( 'javascript_file', 'script.js') }; ...以及使用add_menu_page()和创建的一些管理页面add_submenu_page() function my_menu() { add_menu_page('Page 1', 'bar', 'something', 'else', 'foo'); add_submenu_page( 'theme_menu', 'Subpage 1', 'Subpage', 'something', 'else', 'foo'); } add_action('admin_menu', 'my_menu'); 如何仅在这些页面上加载两个函数? 现在我正在使用: add_action('admin_init', 'admin_custom_css' ); add_action('admin_init', 'admin_custom_js' ); 但这会在每个管理页面上加载我的文件,这一点都不好。 我可以通过一个简单的行来完成此操作,functions.php还是必须将它们分别放入我的页面中(我强烈建议使用第一个选项,因为我必须编辑很多管理页面创建功能)。 谢谢!



8
有条件地为短代码加载JavaScript / CSS
我发布了一个创建简码的插件,该插件需要一个JavaScript文件和一个CSS文件才能在包含该简码的任何页面上加载。我可以在所有页面上加载脚本/样式,但这不是最佳实践。我只想在调用短代码的页面上加载文件。我发现有两种方法可以这样做,但是都有问题。 方法1在shortcode处理函数中将标志设置为true,然后在wp_footer回调中检查该值。如果为true,则用于wp_print_scripts()加载JavaScript。这样做的问题是,它仅适用于JavaScript,而不适用于CSS,因为CSS应该在内部声明<head>,您只能在类似initor 的早期挂钩中执行此操作wp_head。 方法2提前触发并“向前看”,以查看当前页面内容中是否存在简码。我比第一种方法更喜欢这种方法,但是它的问题无法检测模板是否调用do_shortcode()。 因此,我倾向于使用第二种方法,然后尝试检测是否已分配模板,如果分配了模板,则将其解析为简码。但是,在此之前,我想检查是否有人知道更好的方法。 更新:我已经将解决​​方案集成到了我的插件中。如果有人想看到它在实时环境中充实,可以下载或浏览它。 更新2:由于WordPress的3.3,它现在可以打电话wp_enqueue_script()直接在短码回调里面,和JavaScript文件将文档的页脚中调用。从技术上讲,这对于CSS文件也是可行的,但应将其视为一种不好的做法,因为在<head>标记外输出CSS 违反W3C规范,可能会破坏FOUC,并可能迫使浏览器重新呈现页面。

4
如何在子主题中覆盖JavaScript文件?
我正在父主题中加载一些JavaScript文件。父主题中的路径为: scripts > custom.js 在子主题中,我将创建相同的路径(scripts > custom.js)并更改custom.js文件中的某些jQuery 。 问题是未应用更改。这是在子主题中更改这些文件的错误方法吗?

6
wp由于依赖关系而使内联脚本排队
有没有一种方法可以将wp_enqueue_script()用于内联脚本? 我这样做是因为我的内联脚本依赖于另一个脚本,并且我希望在加载后插入它的灵活性。 另外,这是一个内联脚本,因为我正在将php变量传递到javascript中(例如主题路径等) 提前致谢。

2
如何使父主题的CSS文件出队?
我的父主题(Starkers)添加了一个我要删除的CSS文件(我想改用@import以便更轻松地覆盖样式)。Starkers在functions.php中具有以下内容: add_action( 'wp_enqueue_scripts', 'script_enqueuer' ); function script_enqueuer() { wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) ); wp_enqueue_script( 'site' ); wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' ); wp_enqueue_style( 'screen' ); } 我在子functions.php中尝试了以下操作,但是链接和脚本标签仍显示在头部。 add_action('init', 'removeScripts'); function removeScripts() { wp_dequeue_style('screen'); wp_deregister_script('site'); } 我仔细检查了它们是否在父标头中进行了硬编码,而事实并非如此。


1
如何在插件JavaScript中添加defer =“ defer”标签?
我无法在插件JavaScript中添加延迟标记。Google开发人员的pagespeed测试建议我在联系表单7 javascripts中添加defer标签。 这就是联系表7在标头中包含javascript的方式。 add_action( 'wp_enqueue_scripts', 'wpcf7_enqueue_scripts' ); function wpcf7_enqueue_scripts() { // jquery.form.js originally bundled with WordPress is out of date and deprecated // so we need to deregister it and re-register the latest one wp_deregister_script( 'jquery-form' ); wp_register_script( 'jquery-form', wpcf7_plugin_url( 'jquery.form.js' ), array( 'jquery' ), '2.52', true ); $in_footer = …

4
是否可以使用wp_localize_script在没有特定脚本句柄的情况下创建全局JS变量?
我们可以通过某种方式使用wp_localize_script()创建全局js变量而没有可以从所有js文件访问的特定脚本句柄,即使未使用wp_enqueue_script正确地将js脚本排入队列吗? 这是我正在使用的代码,用于为“ ajaxscript”句柄创建变量,因此我无法访问js文件中的对象“ ajaxobject”,该文件直接包含在header.php中, <script src="xxx" .... /> wp_register_script( 'ajaxscript', get_bloginfo( 'template_url' ) . '/js/ajaxscript.js', array(), $version ); wp_enqueue_script( 'ajaxscript' ); wp_localize_script( 'ajaxscript', 'ajaxobject', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'ajaxnonce' => wp_create_nonce( 'itr_ajax_nonce' ) ) );

4
可以使用WP脚本/样式加载器在前端连接和gzip脚本和样式吗?
WP在wp-admin中包含一个不错的javascript加载器:http : //core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-scripts.php 和CSS加载器:http: //core.trac.wordpress.org/browser/tags/3.0.4/wp-admin/load-styles.php 我想知道是否也可以在前端使用它们,而不仅仅是admin,因为它们可以串联所有排队的脚本,并将它们作为单个gzip文件提供

5
如何将JavaScript片段添加到需要jQuery的页脚中
我知道我可以使用以下代码将脚本文件添加到需要jquery的wordpress页脚中: <?php function my_scripts_method() { // register your script location, dependencies and version wp_register_script('custom_script', get_template_directory_uri() . '/js/custom_script.js', array('jquery'), '1.0', true); // enqueue the script wp_enqueue_script('custom_script'); } add_action('wp_enqueue_scripts', 'my_scripts_method'); ?> 但是,如果我只想添加普通的jquery内联代码片段而不是文件,该怎么办?如何才能做到这一点。 编辑 我知道我可以使用此脚本在页脚中添加一些内容: <?php function myscript() { ?> <script type="text/javascript"> // This depends on jquery </script> <?php } add_action('wp_footer', 'myscript'); 但是,如何指定使用的脚本需要运行jquery。

2
前端未定义ajaxurl
我正在尝试在前端创建一个ajaxform。我正在使用代码 jQuery.ajax( { type: "post", dataType: "json", url: ajaxurl, data: formData, success: function(msg){ console.log(msg); } }); 我正在为此错误 Uncaught ReferenceError: ajaxurl is not definedworklorAjaxBookForm @ ?page_id=2:291onclick @ ?page_id=2:202 在管理后端上使用类似代码时。我必须使用哪个URL来处理ajax请求?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.