web-dev-qa-db-ja.com

オプションを選択済みとしてマークする方法

テーマ設定で投稿カテゴリを表示したいのですが、次のコードを使用してこれを成功させました。

<?php /* Get the list of categories */ 
            $categories = get_categories();
            foreach ( $categories as $category) :
            $selected = ''; 
            ?>
<option <?php echo $option ?> value="<?php echo $category->cat_ID; ?>">
<?php echo $category->cat_name; ?></option>
<?php endforeach; ?>

すべてがうまく機能しているので、私はそのオプションを呼び出すことができます。

足りないのは、カテゴリを選択した後、設定を保存したときに、そのカテゴリがドロップダウンボックス内で選択済みとしてマークされていないことです。それでも、選択したカテゴリはデータベースに保存されます。

-

私はaceraのテーマオプションを使用しています、そして私は選択カテゴリオプションを作成するために選択タイプを編集しました。

これが私が始めたコードです:

<select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
                        <?php
                        if (get_option($value['id']))
                            $default = get_option($value['id']);
                        else
                            $default = $value['default'];

                        foreach ($value['options'] as $option):
                            $selected = '';
                            if ($option == $default)
                                $selected = ' selected="selected"';
                            ?>
                            <option <?php echo $selected; ?>><?php echo $option ?>

                            </option>
                        <?php endforeach; ?>


                    </select>

だからここから私は(私はこれをやったとオプションがフロントエンドで働いている)カテゴリを表示し、また選択されたものを選択されたように設定したいと思います。 (これはありません)

ありがとう

2
Selma

あなたが探しているのは selected()関数 です。

更新されたoptionは次のようになります。

<option
    value="<?php echo $category->cat_ID; ?>"
    <?php selected($option, $category->cat_ID); ?>>
    <?php echo $category->cat_name; ?>
</option>

// EDIT
ああ、そしてところで、あなたの特定のケースでは、あなたは wp_dropdown_categories関数 を使いたいと思うかもしれません、と私は思います。

それはそうだろう:

wp_dropdown_categories(
    array(
        'selected' => $option
        // maybe some other settings
    )
);
1
tfrommen

あなたがオプションの値を与えていないあなたのHTMLコードをチェックしてください:あなたがそれを保存するとき、それは保存されません。

<select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
                    <?php
                    if (get_option($value['id']))
                        $default = get_option($value['id']);
                    else
                        $default = $value['default'];

                    foreach ($value['options'] as $option):
                        $selected = '';
                        if ($option == $default)
                            $selected = ' selected="selected"';
                        ?>
                        <option <?php echo $selected; ?> value="<?php echo $option ?>"><?php echo $option ?>

                        </option>
                    <?php endforeach; ?>


                </select>
1
Shahinul Islam