假设您没有使用AJAX进行表单提交,那么可以使用wp_localize_script()
. 以下是一个简化版本:
在插件文件中:
function wpse105919_add_scripts(){
wp_enqueue_script( \'myjs\', plugins_url( \'/myjs.js\', __FILE__ ) );
wp_localize_script( \'myjs\', \'jsLocalizedObject\', \'hello world\');
}
add_action(\'wp_enqueue_scripts\', \'wpse105919_add_scripts\');
目录
myjs.js
文件:
alert( jsLocalizedObject );
wp_localize_script()
将添加一个名为
jsLocalizedObject
到您文档的
<head>
. 如果查看页面的源代码,您将看到如下内容:
<script type=\'text/javascript\'>
/* <![CDATA[ */
var jsLocalizedObject = "hello world";
/* ]]> */
</script>
从您的
wp_options
表,您可以使用
get_option()
然后传递结果,而不是
hello world
在
wp_localize_script
作用
您的代码如下所示:
function wpse105919_add_scripts(){
wp_enqueue_script( \'myjs\', plugins_url( \'/myjs.js\', __FILE__ ) );
$myoption = get_option(\'option_name\', \'default_value\');
wp_localize_script( \'myjs\', \'jsLocalizedObject\', $myoption);
}
add_action(\'wp_enqueue_scripts\', \'wpse105919_add_scripts\');
以及您的jQuery部分:
jQuery(\'.notice_container\').wrap(<\'div id="custom_notice"><span>\' + jsLocalizedObject + \'</span></div>\')
请注意,您应该使用
admin_enqueue_script
相反,如果您的JS应该加载到仪表板中。