Questions tagged «javascript»

一种客户端脚本语言,可用于制作交互式网站。有关在WordPress上下文之外使用JavaScript的问题不在主题之列,但可能会在Stack Overflow上提出。

3
将javascript文件添加到特定帖子和/或页面的最有效方法?
我想知道最有效的方法是为帖子和/或页面添加一个javascript文件。 这是我想出的一些解决方案: 切换到HTML编辑视图并在其中发布您的JavaScript(非常糟糕的解决方案) 键和值对中具有该帖子/页面的特定JavaScript的自定义字段 在footer.php中,根据您所在的页面加载JavaScript文件(尽管这样会产生很多条件) 附带说明一下,所有页面之间都不会共享任何JavaScript文件-它实际上是特定于您当前正在查看的内容。 有什么想法吗?

1
我想将.js文件加入我的子主题
我试图将自定义.js文件放入我的子主题目录中。 在我的子主题的functions.php中,我找到了以下代码 /* After this. you can override Accessible Zen's pluggable functions or add your own. * Remember, do your best to stay accessible! :) * */ add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_script( 'custom-script.js', 'js/custom-script.js', array('jquery') ); wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' …

6
如何正确包含jQuery和JavaScript文件?
我现在用以下代码来做: function uw_load_scripts() { // De-register the built in jQuery wp_deregister_script('jquery'); // Register the CDN version wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false); // Load it in your theme wp_enqueue_script( 'jquery' ); } add_action( 'wp_enqueue_scripts', 'uw_load_scripts' ); 这可行,但是我应该对所有人(像这样)或除admin之外的每个人执行此操作(以便后端使用WordPress版本?): if (function_exists('load_my_scripts')) { function load_my_scripts() { if (!is_admin()) { wp_deregister_script( 'jquery' ); wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', …

5
验证自定义元框值和必填字段
我从未见过的东西是验证特定表格字段是否正确填写自定义帖子类型元框的最佳方法。 我正在寻求有关如何最好地验证可能创建的任何metabox的自定义字段的专家意见。我的兴趣是: 确保在发布/更新帖子之前进行字段验证 利用与其他wordpress javascript不冲突的类/代码 允许您根据需要定义特定字段,而其他字段则可选 根据可自定义的规则(包括正则表达式)验证字段,例如电子邮件格式 控制任何错误/通知的视觉显示 提前致谢!

5
生成动态javascript / CSS的解决方案
假设您需要根据当前上下文生成JavaScript或CSS代码。 例如,您在主页上有一个表单,该表单在提交时会触发ajax请求,而在单个页面上有另一种表单。或者对于CSS,您想要创建一个主题,允许其用户构建自己的布局,更改颜色等。 到目前为止,我看到的解决方案是: 将代码包含在文档的开头部分(如果是JS,则在结尾处) 进行特殊请求以输出代码,例如site.com?get_assets。这很慢,因为WP被加载了两次。 将其存储在临时文件中一定时间,然后从那里加载它。对于公共主题或插件不是很可靠。 仅Javascript-通过将其放入每次加载的普通文件中使其变为静态。在这种情况下,您将必须使代码处理任何情况 你认识别人吗 你会走哪条路?

2
将对象/ JSON传递给wp_localize_script
我有一个包含对象文字的javascript工作片段。但是我需要对其进行本地化,并且我正尝试找出如何重写它,以便可以获取wp_localize_script()以接受它,并输出正确的格式。 非本地化(非动态)版本如下所示: var layoyt_config = { 'header' : 1 , 'footer' : 1 , 'ls' : {'sb1':1} , 'rs' : {'sb1':1,'sb2':1} , 'align' : 'center' }; 现在,要让php生成这些值(基于某些wp_settings),我想使用wp_localize_script,因此可以从那里获取: var layoyt_config = my_localized_data.layoyt_config; 为了使数据进入该对象属性,我“想”可以做到这一点,但是显然不能: $data = array( 'layout_config' => { 'header' : 1 , 'footer' : 1 , 'ls' : {'sb1': 1} …

6
JavaScript文件中的主题路径
我需要在javascript文件中包含主题文件的路径。我将如何处理?我已经尝试过: var templateUrl = "<?php get_stylesheet_directory_uri(); ?>"; function LightboxOptions() { this.fileLoadingImage = "'"+templateUrl+"/img/loading.gif'"; this.fileCloseImage = "'"+templateUrl+"/img/close.png'"; this.resizeDuration = 700; this.fadeDuration = 500; this.labelImage = "Image"; this.labelOf = "of"; } 这不会给我路径,而只是插入<?php get_stylesheet_directory_uri(); ?>而不是实际路径。有任何想法吗?提前致谢!

6
如何仅在特定页面上包含代码?
我正在学习插件和简码。我注意到,当我激活插件时,其代码会加载到我的所有页面上,即使没有简码的页面也是如此。(我的意思不是内容与管理页面)。在某些内容页面上,我不使用特定的短代码,而在其他内容页面上,我不使用-但无论如何,都会加载插件的代码。如何使插件仅包含在使用简码的页面上? 更多详情: 假设我有一个制作灯箱的插件。我激活插件。在“酷图片”页面上,我使用简码制作了一个灯箱。当我在“关于”页面上选中不使用灯箱简码的查看源代码时,我看到灯箱插件的代码已加载。如果我编写插件,则页面加载速度会更快,以便其代码仅在需要的页面上加载。这可能吗?否则,我将不必要地在页面上加载大量插件的代码。有任何想法吗?

3
wp_add_inline_script没有依赖性
我有一个要插入页面页脚的JavaScript代码段。这是一个跟踪代码,可以说类似于Google Analytics(分析)。它没有依赖关系,是一个独立的代码段。 我可以做这样的事情 function render_tracking_code(){ wp_enqueue_script( 'depends-js', 'https://rdiv.com/dummy.js', array(), '0.01', true ); wp_add_inline_script( 'depends-js', 'aWholeBunchOfJavascriptCode' ); } add_action( 'wp_enqueue_scripts', 'render_tracking_code' ); 看起来有点愚蠢(dummy.js是一个空白文件),但是可以工作。有没有办法跳过依赖关系?

1
Wordpress何时将内联脚本包装在CDATA中?
我正在调试我们的第三方脚本存在的问题,Wordpress用户通过将脚本和html的片段复制/粘贴到其帖子的正文中来使用它们(当然是非现实示例): <script> window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); </script> 我注意到有些wordpress安装会将其包装在CDATA中,有些则不会(可能通过进行某种DOCTYPE检查-尽管我测试过的所有主题都使用HTML5 doctype)。 但是,当将脚本包装在CDATA中时,用户将受到以下bug的叮咬:https : //core.trac.wordpress.org/ticket/3670(结束符>错误地替换为>),这导致浏览器忽略了脚本内容: <script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); // ]]></script> 我本人并没有拥有太多WP-Fu,而谷歌搜索只能使我按原样识别问题,所以我的问题是:WordPress何时将内联脚本确切地包装到CDATA部分中?用户可以以某种方式阻止此行为吗?用户可以在不修改WP内核的情况下以某种方式解决上述错误吗?

2
定制器JS API
好的,我一直在尝试教育自己使用定制工具的JS API动态创建新的面板部分和控件。 几天令人沮丧,我无法通过JS API获得实现此目的的确切方法。 到目前为止,这是我正在做的一些事情,但没有成功: // for Settings api.create( params.id, params.id, params.default, params.args ); // for controls var controlConstructor = api.controlConstructor[params.type]; var control = new controlConstructor(params.id, { params: params, previewer: api.previewer }); api.control.add( params.id, control ); //for Sections var section = new api.Section(params.id, { params: params }); api.section.add( params.id, section …

3
从REST API检索到的随机数无效,并且与wp_localize_script中生成的随机数不同
对于那些来自Google的应用程序:除非您真的知道自己在做什么,否则您可能不应该从REST API中获取现时信息。REST API的基于Cookie的身份验证仅适用于插件和主题。对于单页应用程序,您可能应该使用OAuth。 之所以存在这个问题,是因为文档尚不清楚/尚不清楚在构建单页应用程序时应如何进行真正的身份验证,JWT并不真正适用于Web应用程序,并且比基于cookie的身份验证更难以实现OAuth。 该手册中有一个有关Backbone JavaScript客户端如何处理随机数的示例,如果我按照该示例进行操作,则会得到一个随机数,该内置数可以被/ wp / v2 / posts等端点接受。 \wp_localize_script("client-js", "theme", [ 'nonce' => wp_create_nonce('wp_rest'), 'user' => get_current_user_id(), ]); 但是,使用Backbone和主题都是不可能的,因此我编写了以下插件: <?php /* Plugin Name: Nonce Endpoint */ add_action('rest_api_init', function () { $user = get_current_user_id(); register_rest_route('nonce/v1', 'get', [ 'methods' => 'GET', 'callback' => function () use ($user) { return …

3
如何拦截已经本地化的脚本
如果插件使用某些脚本(突出示例:jQuery UI Datepicker),但是您对脚本如何呈现输出不满意,则有两种可能性: 1.取消注册脚本>添加自己的版本 因此,首先你需要检查的手柄,然后找到优先级和钩(wp_enqueue_scripts,login_enqueue_scripts,等)......你知道该怎么做。 2.更改jQuery插件参数 通常-如果插件不是废话-它会使用以下命令将参数从PHP推送到JS wp_localize_script( $handle, $object_name, array( // data ) ); 现在,这是一种将数据添加到JS脚本的聪明方法,但是 ...默认情况下它是不可过滤的。以后都WP_Scripts没有WP_Dependencies提供任何过滤器供用户使用 问题:我们如何使用过滤从PHP移动到Javascript的参数/参数wp_localize_script?

1
为什么我的帖子内容中允许使用javascript?
抄本说你不能在帖子内容中添加javascript https://codex.wordpress.org/Using_Javascript 但是我可以。我已经关闭了所有插件,并更改为26个主题,但无济于事-我仍然可以通过发布内容添加javascript,并使其在前端运行。出于安全原因,我不希望任何人能够通过帖子内容(除了oembed等)添加javascript。 有没有人经历过这个或有什么想法可以帮助? 谢谢

1
是否可以扩展WP Customize JS方法?
我想知道是否有可能在中扩展匿名api对象 的方法wp-admin/js/customize-control.js。我需要用自己的自定义逻辑覆盖这些方法之一,但是我怀疑这是不可能的,因为它包装在立即调用的函数表达式中: /* globals _wpCustomizeHeader, _wpMediaViewsL10n */ (function( exports, $ ){ // code })( wp, jQuery ); 据我所知,我无法从window对象扩展原型,因为它是匿名执行的,无法从中获得window.wp.customize。知道这样的事情是否可能吗?甚至在.toggle()方法文档/说明中都提到了对此的覆盖:https : //github.com/WordPress/WordPress/blob/master/wp-admin/js/customize-controls.js#L110,但是我我不确定它们是否意味着通过简单地分叉整个JS文件,使WP版本出队并排入您自己的队列,或者它们的含义或其他含义。 注意,似乎应该有可能,wp.customize.{method}.extend({ foo: // replace method foo here })但这仅适用于公共基类/对象,不适用于那些wp-admin/js/customize-control.js

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.