在菜单页上添加其他变量

时间:2016-02-08 作者:j8d

我通过构建一个插件来学习PHP,该插件可以根据用户的位置显示或隐藏菜单项。我现在有点困了。

在下面的函数中,文本输入被保存到数据库中,但我在将单选按钮数据保存到数据库中时遇到问题。

我希望默认选中第一个选项。

    function option( $fields, $item_id ) {
    ob_start(); ?>
        <p class="field-visibility description description-wide">
            <label for="edit-menu-item-visibility-<?php echo $item_id; ?>">
                <?php _e(\'Enter country code(s) separated with commas\') ?>:
                <input type="text" 
                        class="widefat code" 
                        id="edit-menu-item-visibility-<?php echo $item_id; ?>" 
                        name="menu-item-visibility[<?php echo $item_id; ?>]" 
                        value="<?php echo esc_html( get_post_meta( $item_id, \'locations\', true ) ); ?>" /></br>
                <input type="radio" 
                        id="edit-menu-item-visibility-<?php echo $item_id; ?>" 
                        name="menu-item-show-hide[<?php echo $item_id; ?>]" 
                        value="<?php echo get_post_meta( $item_id, \'hide\', true ); ?>" 
                        />Hide from these locations.</br>
                <input type="radio" 
                        id="edit-menu-item-visibility-<?php echo $item_id; ?>"
                        name="menu-item-show-hide[<?php echo $item_id; ?>]" 
                        value="<?php echo get_post_meta( $item_id, \'show\', true ); ?>" 
                        />Only show to these locations.</br>
            </label>
        </p>
    <?php
    $fields[] = ob_get_clean();
    return $fields;
    }
以下是电流输出:

enter image description here

理想情况下,我会使用单选按钮设置一个名为$visible true或false的变量。但我不知道如何做到这一点。

提前感谢!

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

使用选中功能。https://codex.wordpress.org/Function_Reference/checked

要呈现的HTML应如下所示:

<input ... value="hide" checked="checked" />Hide from these locations.</br>
<input ... value="show" />Only show to these locations.</br>
你得到的可能是这样的东西:

<input ... value="hide" />Hide from these locations.</br>
<input ... value="" />Only show to these locations.</br>
这将有助于:

<input type="radio" id="edit-menu-item-visibility-<?php echo $item_id;>" name="menu-item-show-hide[<?php echo $item_id; ?>]" value="hide" <?php checked( get_post_meta( $item_id, \'hide_show\', true ), \'hide\', true ); ?>" />Hide from these locations.</br>
<input type="radio"id="edit-menu-item-visibility-<?php echo $item_id; ?>" name="menu-item-show-hide[<?php echo $item_id; ?>]" value="show" <?php checked( get_post_meta( $item_id, \'hide_show\', true ), \'show\', true ); ?>" />
仅显示到这些位置。