繁体   English   中英

在Javascript中使用Wordpress Customizer

[英]Using Wordpress Customizer in Javascript

我为Wordpress Customizer做了一个自定义控件,我想在脚本(Instafeed.js)中设置我的控件,以更改limit数。

根据这个答案,这就是我到目前为止的做法

<script type="text/javascript">  
          var userFeed = new Instafeed({
            get: '',
            tagName: '',
            clientId: '',
            limit: var imglimit = <?php echo json_encode($imglimit); ?>;,
            });
            userFeed.run();
</script>

功能

$wp_customize->add_setting(
        'imglimit',
        array(
            'default'      => '',
            'section'      => 'section',
));
$wp_customize->add_control('imglimit', array(
      'label'      => __('test'),
      'section'    => 'section',
      'settings'   => 'imglimit',
      'type'       => 'select',
      'choices'    => array(
        '5'   => '5',
        '10'  => '10',
        '20'  => '20',
      ),
));

function theme_customizer()
{
    $imglimit = get_theme_mod('imglimit');
}

谁能告诉我哪里出错了? 我一直在寻找这个。

好吧,你这里有语法错误:)

      var userFeed = new Instafeed({
        get: '',
        tagName: '',
        clientId: '',
        limit: var imglimit = <?php echo json_encode($imglimit); ?>;,
//             ^^^^^^^^^^^^ here                      and here     ^ 
        });

因此,您应该将该代码块更改为

      var userFeed = new Instafeed({
        get: '',
        tagName: '',
        clientId: '',
        limit: <?php echo json_encode($imglimit); ?>,
      });

实际上你不一定需要在这里进行json编码,因为它只是一个数字。 但如果那是一个数组或对象,是的,你应该编码那个。

在你的PHP代码中你应该使$imglimit全局:

function theme_customizer()
{
    global $imglimit;
    $imglimit = get_theme_mod('imglimit');
} 

或者只是把它放到js:

      var userFeed = new Instafeed({
        get: '',
        tagName: '',
        clientId: '',
        limit: <?php echo json_encode(get_theme_mod('imglimit')); ?>,
      });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM