描述
比较前两个参数,如果相同,则标记为选中。
参数
- $selected
-
(mixed)(必填) 要比较的值之一。
- $current
-
(mixed)(可选) 要比较的另一个值(如果不只是true)。
默认值: true
- $echo
-
(bool)(可选) 是回显还是仅返回字符串。
默认值: true
返回
(string) HTML属性或空字符串。
源码
更新日志
版本 | 描述 |
---|---|
1.0.0 | 开始引入 |
使用示例
实例
<!-- Testing the values with if() --> <select name="options[foo]"> <option value="1" <?php if ( $options['foo'] == 1 ) echo 'selected="selected"'; ?>>1</option> <option value="2" <?php if ( $options['foo'] == 2 ) echo 'selected="selected"'; ?>>2</option> <option value="3" <?php if ( $options['foo'] == 3 ) echo 'selected="selected"'; ?>>3</option> </select> <!-- Using selected() instead --> <select name="options[foo]"> <option value="1" <?php selected( $options['foo'], 1 ); ?>>1</option> <option value="2" <?php selected( $options['foo'], 2 ); ?>>2</option> <option value="3" <?php selected( $options['foo'], 3 ); ?>>3</option> </select>
使用foreach循环选择
/** * Demonstration uses all cpt posts in a dropdown field to select * a featured listings to callback in a function */ function wporg_wpselected_featured_listing_cb() { $post_type = 'wpselected_post'; $options = get_option( 'wpselected_lists' ); // select(ed)_id will be a custom option outside of this function. $wpselected_select_id = $options['wpselected_featured_listing']; // Avoid ending up with no string value by setting a default value if ( '' === $wpselected_select_id ) { $wpselected_select_id = 0; } /** * Sets up a list of cpt posts to do foreach with * @param $label string Optional */ $post_type_object = get_post_type_object( $post_type ); $label = $post_type_object->label; $posts = get_posts( array( 'post_type' => $post_type, 'post_status' => 'publish', 'suppress_filters' => false, 'posts_per_page' => -1 ) ); ?> <label class="olmin"><?php esc_html_e( 'Listing at top home page.', 'wpselected' ); ?></label> <select name="wpselected_lists[wpselected_featured_listing]"> <option value="0"><?php echo esc_html__( $label, 'wpselected' ); ?></option> <?php /** * `selected` magic in use */ foreach ( $posts as $post ) { echo '<option value="' . esc_attr( $post->ID ) . '"' . selected( $wpselected_select_id, $post->ID, false ) . '>' . esc_html__( $post->post_title, 'wpselected' ) . '</option>'; } echo '</select>'; }
理想情况下,您可以选择使用
ob_start()
和ob_get_clean()
,以避免前端出现任何HTML故障。