问题描述
我有一个插件,除其他外,还有一个需要几个用户特定设置的 javascript 文件。从插件的设置参数将这些设置变成 javascript 的最佳方法是什么?
换句话说,如果我将这些设置作为用户可以输入的设置页面的一部分,我最好能够将这些值转化为 javascript?我必须使用某些东西来附加一些脚本标签,并通过 PHP 在每个页面加载设置它们吗?设置一个 cookie 是一个更好的方式来做到这一点?
最佳解决方案
更好的是,你使用 WP 的功能为这个多语言的例子:
add_action( 'admin_enqueue_scripts', 'add_scripts' );
function add_scripts($where) {
wp_localize_script( 'post2media', 'post2media_strings', $this->localize_vars() );
}
function localize_vars() {
$strings = array(
'btntext' => __( 'Link with post', INPSYDE_P2M_TEXTDOMAIN ),
'txtallnone' => __( 'Include in gallery:', INPSYDE_P2M_TEXTDOMAIN ),
'txtall' => __( 'All', INPSYDE_P2M_TEXTDOMAIN ),
'txtnone' => __( 'None', INPSYDE_P2M_TEXTDOMAIN ),
'ttlcb' => __( 'Include image in this gallery', INPSYDE_P2M_TEXTDOMAIN )
);
return $strings;
}
在 js-file 中使用:
jQuery(function ($) {
buttonaddfunc = function() {
btntext = post2media_strings.btntext;
reg = /d+/;
$( '.savesend > .button' ) . each( function() {
inputname = $( this ) . attr( 'name' );
number = reg . exec( inputname );
$( this ) . after( '<input type="submit" value="' + btntext + '" name="link[' + number + ']" class="button">' );
} );
$( '.describe-toggle-on' ).unbind( 'click', buttonaddfunc );
};
$( '.describe-toggle-on' ).bind( 'click', buttonaddfunc );
});
另请参阅 post from Otto
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。