如何在wordpress定制器中检查checkox是否被选中

h4cxqtbf  于 2023-03-01  发布在  WordPress
关注(0)|答案(2)|浏览(170)

我正在建立一个插件,我想添加一些依赖于复选框的设置.如果用户选中复选框如何知道.我知道如何从php中的复选框获取数据,但在wordpress中卡住了.因为我们没有选项添加名称属性到复选框.例如,我正在添加一个复选框在定制.

$wp_customize->add_setting('ion', array(
        'sanitize_callback' => 'ion_checkbox'
    ));
    $wp_customize->add_control(new WP_Customize_Control($wp_customize, 'ion', array(
        'label' => 'Check',
        'type' => 'checkbox',
        'section' => 'search_submit_section',
        'settings' => 'ion'
    )));

正如我们所看到的,没有添加名称属性的选项,我们将如何知道用户是否选中了复选框。我希望你能理解我的问题。提前感谢

gk7wooem

gk7wooem1#

如果使用($wp_customize, 'ion', array....,则ID为ion,您可以使用以下公式获取值

$ion_checkbox_checked = get_theme_mod('ion') ? true : false;

如果选中复选框,get_theme_mod('ion')将返回1,否则0

8i9zcol2

8i9zcol22#

下面是我们的免费HoverCraft主题的一个例子,灵感来自@ewwink:

<?php 
$hovercraft_scroll_to_top_checked = get_theme_mod( 'hovercraft_scroll_to_top' ) ? true : false;
if ( $hovercraft_scroll_to_top_checked == true ) { ?>
        <div class="scrollup-wrapper">
            <a class="scrollup-link" href="#top"><i class="material-icons arrow_upward">arrow_upward</i></a>
        </div><!-- scrollup-wrapper -->
<?php } ?>

有很多坏的例子流传re:复选框。请确保您将它们清理为布尔值,与Twenty Twenty主题相同:
https://wp-a2z.org/oik_api/twentytwenty_customizesanitize_checkbox/

function sanitize_checkbox( $checked ) {
    return ( ( isset( $checked ) && true === $checked ) ? true : false );
}

相关问题