是否会使用AJAX从数据库中获取选项并在jQuery设置中使用它,或者是否有其他选择可供考虑?

时间:2012-07-19 作者:byronyasgur

我的主题中有一个滑块。我在选项中有一个设置,可以控制滑块是设置为“滑动”还是“淡入淡出”。这个幻灯片/淡入淡出设置在jquery中,当然选项设置也在数据库中。我认为获得此设置的正常方法是通过AJAX,但我想我会问,因为我有许多其他类似的关于此主题的场景。

我一直认为AJAX的意思是“无需重新加载页面即可更改数据”。。。。但在这种情况下,我只希望jquery在第一次加载页面时能够访问数据。。。因此,我的“理解”似乎有点偏离,需要jqueryany time javascript/jquery需要从数据库中获取信息。

2 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

按正常方式将脚本排队(&;然后在滑块HTML输出之后调用JS函数(或打开wp_footer), 并将JSON配置传递回函数。

<!-- slider HTML -->
<script type="text/javascript">
    jQuery( "#my_slide" ).mySlider(
        <?php echo json_encode( $my_config /* array or object of arguments */ ) ?>
    );
</script>
Alternatively, 进来wp_localize_script:

wp_enqueue_script( \'my-slider\', plugins_url( \'js/slider.js\', __FILE__ ), array( \'jquery\' ) );
wp_localize_script( \'my-slider\', \'My_Slider\', array(
    \'somevar\' => get_option( \'my_var\' ),
));
这将在头部输出如下内容:

<script type="text/javascript">My_Slider = { "somevar": "value of get_option( \'my_var\' )" }</script>
<script type="text/javascript" src="http://example.com/wp-content/plugins/my-slider/js/slider.js"></script>
查看您现在如何访问JS globalMy_Slider?

SO网友:AlxVallejo

您需要使用wp\\u localize\\u脚本将PHP变量传递给javascript。

在javascript文件中,可以引用如下变量:

myCustomVariable.fadeOption
然后在选项面板中,可以将$\\u POST[\'fade\\u option\']分配给myCustomVariable。fadeOption(时尚选项):

function load_fade_option(){
  wp_enqueue_script(\'slider\', \'slider.js\', array( \'jquery\' ));
  wp_localize_script(\'slider\', \'myCustomVariable\',
    array(
            \'fadeOption\' => $_POST[\'fade_option\'],
         )
    );
}
Pippin在这方面有一些很好的文档:

http://pippinsplugins.com/use-wp_localize_script-it-is-awesome/

结束

相关推荐

仅为后端中的某些页面加载jQuery

我的函数中有一组自定义主题设置。php文件。In order to arrange some things I want to load jquery ONLY to my functions.php file. 我在wordpress中读到的是:如果在admin中需要,可以使用admin\\u enqueue\\u scripts操作,however this enqueues it on ALL admin pages, which often leads to plugin/core conflic