定制器中的Wordpress选择设置没有输出正确的代码


Wordpress select setting in customizer not outputing proper code

在我的wordpress主题中有一个定制器部分。我为图标做了一个设置和控件。我希望我的用户能够选择他想要的图标。我用icon-home之类的类实现了icomoon图标字体。

我为这个图标做了如下的设置和控件:

$wp_customize->add_setting(
    'service1_icon',
    array(
        'default' => 'icon1',
        'type' => 'option',
    )
);
$wp_customize->add_control(
    'service1_icon',
    array(
        'label' => 'Service 1 Icon',
        'section' => 'section_services',
        'type' => 'select',
        'choices' => array(
            'icon1' => 'mobile',
            'icon2' => 'home',
        ),
    )
);

和在html/php中:

<span class="service-icon icon-<?php echo get_theme_mod('service1_icon', 'icon1'); ?>"></span>

但是当我在浏览器中看到这样的输出:

<span class="service-icon icon-icon1"></span>

代替:

<span class="service-icon icon-mobile"></span>

我试图修复它,做了一些对我来说不合逻辑的事情,我修复了它。

首先,我从设置中删除了类型:

$wp_customize->add_setting(
    'service1_icon',
    array(
        'default' => 'icon1',
    )
);

然后我重命名icon1, icon2…到图标的实际名称:

$wp_customize->add_control(
    'service1_icon',
    array(
        'label' => 'Service 1 Icon',
        'section' => 'section_services',
        'type' => 'select',
        'choices' => array(
            'mobile' => 'mobile',
            'home' => 'home',
        ),
    )
);