it-swarm.com.de

So markieren Sie eine Option als ausgewählt

Ich möchte Beitragskategorien in den Designeinstellungen anzeigen und habe dies mit folgendem Code erfolgreich durchgeführt:

<?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; ?>

Alles funktioniert gut und ich kann die Option anrufen.

Was fehlt, ist, dass, nachdem ich eine Kategorie ausgewählt habe, ich die Einstellungen speichere, die Kategorie nicht als ausgewählt im Dropdown-Feld markiert ist. Die ausgewählte Kategorie wird jedoch in der Datenbank gespeichert.

-

Ich verwende acera-Designoptionen und habe den Auswahltyp bearbeitet, um eine Auswahlkategorieoption zu erstellen.

hier ist der Code, mit dem ich angefangen habe:

<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>

Von diesem aus möchte ich die Kategorien anzeigen (ich habe dies getan und die Optionen funktionieren im Front-End) und den ausgewählten als ausgewählt festlegen. (Dies fehlt)

Vielen Dank

2
Selma

Was Sie suchen, ist die Funktion selected() .

Ihre aktualisierte option sollte folgendermaßen aussehen:

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

// EDIT
Oh, und übrigens, in Ihrem speziellen Fall möchten Sie vielleicht die Funktion wp_dropdown_categories verwenden , denke ich.

Das wäre:

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

Bitte überprüfen Sie Ihren HTML-Code, wenn Sie den Wert der Option nicht angeben: Wenn Sie sie speichern, wird sie nicht gespeichert.

<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