我尝试过以下两种方法之一:
在
form
我的Widget
类(extendsWP_Widget
)的方法中,我有以下片段,它设置了一个全局 javascript 变量:if( $instance ) : ?> <script type="text/javascript"> window.widget_order_name = "<?php echo $this->get_field_name( 'order' ) ?>"; </script> <?php endif;
在小部件管理标记中,我还尝试创建以下 html 结构:
<div field_name='<?php echo $this->get_field_name( 'order' ) ?>' id='order_field_name' class='hidden'> </div>
在我的小部件管理 javascript 文件中,我以两种方式之一获取该 field_name 的值(如下所示),然后将该小部件名称附加到隐藏输入字段的名称(其中包含我要存储的值)。
第一种方式,使用
window.widget_order_name
:var widget_field_name = window.widget_order_name;
第二种方式,
jQuery
用于抓取field_name
:var widget_field_name = $( '#order_field_name' ).attr( 'field_name' );
我的问题:
每当我第一次将小部件从“可用小部件”容器移动到我的侧边栏时,我都没有得到实际的字段名称,而是得到了字段名称的一种占位符。
所以,而不是得到这样的东西:
<input
type="hidden"
name="widget-hours-widget[2][order][]"
value="L48">
我明白了:
<input
type="hidden"
name="widget-hours-widget[__i__][order][]"
value="L26">
单击保存按钮后,它field_name
会给我小部件的正确名称,widget-hours-widget[2]
而不是占位符widget-hours-widget[__i__]
。
有没有人遇到过类似的问题或知道如何解决它?
谢谢。