我有一个插件,其中包括一个javascript文件,该文件需要一些特定于用户的设置。从插件的设置参数将这些设置转换为javascript的最佳方法是什么?
换句话说,如果我将这些设置作为设置页面的一部分,用户可以在其中输入它们,那么我如何才能最好地将这些值输入到javascript中?我是否需要使用一些东西来附加一些脚本标记,并在每次加载页面时通过PHP进行设置?设置cookie是更好的方法吗?
我有一个插件,其中包括一个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文件中使用: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
有几种方法可以做到这一点,其中一种我以前做过,另一种我没有做过,但我用于XML配置文件。
第一个是将变量包含在WP页眉或页脚内的脚本标记中,在包含JS文件的脚本标记之前,例如:
<script type="text/javascript">
var test = "<?php echo "hello world"; /* the relevant PHP code to echo the data you require */ ?>";
var slider_type = "<?php echo "nivo"; /* same again */ ?>";
</script>
<script type="text/javascript" src="<?php bloginfo("template_url"); ?>/js/your_js_here"></script>
另一种选择是在PHP文件中包含JS,该文件包含在脚本标记中。<script type="text/javascript" src="<?php bloginfo(\'template_url\'); ?>/javascripts.php"></script>
在这个文件中,您将包含javascript,并且由于PHP将对其进行解析,您将能够以与上面类似的方式包含PHP调用,只需回显所需的数据/选项。需要注意的一点是,您可能需要将输出的标题设置为text/javascript
.就个人而言,我更喜欢第一种方法,当我有影响javascript文件的用户可更改设置时,我会使用第一种方法。
我对插件创作还很陌生,调试也很困难。我用了很多echo,它又脏又丑。我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在其中运行整个站点,包括插件?