主题定制器--一个选项可以传递多个值吗?

时间:2017-03-22 作者:esd

在我的自定义面板中,我有一个单选按钮,用于隐藏或显示WordPress站点上的功能。但是,当选择单个选项时,我需要传递多个值。

e、 g。

enter image description here

我的功能中的相关部分。php如下所示:

$wp_customize-> add_control(\'blog_setting\', array(
    \'label\' => __("Turn on / off the blog link", \'portfolio\'),
    \'section\' => \'Layout_options\',
    \'settings\' => \'blog_setting\',
    \'type\' => \'radio\',
    \'choices\' => array(
            \'block\' =>   \'Blog link visible\',
            \'none\' =>   \'Blog link hidden\'
        ) 
   ) );
我用如下值更改css:

function css_customizer(){
?>

<style type="text/css">
    .blog__Link{display: <?php echo get_theme_mod(\'blog_setting\'); ?>}
</style>
<?php
}

add_action(\'wp_head\', \'css_customizer\');



然而,我需要实现这样的东西(注意**)

 $wp_customize-> add_control(\'blog_setting\', array(
        \'label\' => __("Turn on / off the blog link", \'portfolio\'),
        \'section\' => \'Layout_options\',
        \'settings\' => \'blog_setting\',
        \'type\' => \'radio\',
        \'choices\' => array(
                \'block\', \'1\'** =>   \'Blog link visible\',
                \'none\', \'0\'**  =>   \'Blog link hidden\'
            ) 
       ) );
并按如下方式访问第二个值:

function css_customizer(){
?>

<style type="text/css">
    .blog__Link{display: <?php echo get_theme_mod(\'blog_setting[0]**\'); ?>}
    .second_css_class{opacity: <?php echo get_theme_mod(\'blog_setting[1]**\'); ?>}
</style>
<?php
}

add_action(\'wp_head\', \'css_customizer\');
这可能吗?我知道可以使用javascript主题定制器,但这似乎过于复杂,我只需要为每个选项传递多个值,并能够访问它们。谢谢

1 个回复
最合适的回答,由SO网友:David Lee 整理而成

我理解你想做什么,但你在这里走错了方向,你只需检查你的逻辑中是否选择了一个,然后在那里分配如下值:

function css_customizer(){
  $blog_setting_val = get_theme_mod(\'blog_setting\');
  $opacity_val = ($blog_setting_val == \'block\') ? \'1\' : \'0\';
?>

<style type="text/css">
    .blog__Link{display: <?php echo $blog_setting_val; ?>}
    .second_css_class{opacity: <?php echo $opacity_val; ?>}
</style>
<?php
}

add_action(\'wp_head\', \'css_customizer\');
这应该适用于你的特殊情况。

相关推荐

如何从wp-admin/edit.php重定向到特定定制帖子类型的前端页面?

我正在基于Wordpress构建一个非常小的web应用程序。为此,我为用户可以在应用程序中管理的项目创建了自定义帖子类型。我已经创建了一个非常漂亮、优化的概览页面作为前端页面。然而,为了节省开发时间,编辑每个项目仍然在后端进行。后端中的某些操作(即删除项目)会将用户带到后端中的项目概述页面(/wp-admin/edit.php?post_type=my_item_post_type) 而不是我漂亮的前端页面。我想防止这种情况发生,这样当用户/wp-admin/edit.php?post_type=my_i