小组件和存储选择框选项

时间:2014-09-12 作者:Huw Rowlands

我正在创建一个简单的小部件,它显示网站上的所有页面。我遇到的问题是如何存储用户的选择并将其显示在前端。此时,在保存我的小部件选项时,选择框会返回到列出的第一页。我想我需要使用WordPress的选定功能?

这是我的代码:

        <p>
        <label for="<?php echo $this->get_field_id(\'select\'); ?>"><?php _e(\'Choose A Page:\', \'check_avail_widget\'); ?></label>
        <select name="<?php echo $this->get_field_name(\'select\'); ?>" id="<?php echo $this->get_field_id(\'select\'); ?>" class="widefat">

             <?php 
              $pages = get_pages(); 
                  foreach ( $pages as $page ) {
                    $option = \'<option value="\' . get_page_link( $page->ID ) . \'">\';
                        $option .= $page->post_title;
                        $option .= \'</option>\';
                        echo $option;
              }
             ?>

        </select>
    </p>
我需要添加什么才能工作?提前感谢

1 个回复
SO网友:Huw Rowlands

以下是有效答案,供将来参考。

        <p>
        <label for="<?php echo $this->get_field_id(\'select\'); ?>"><?php _e(\'Choose A Page:\', \'check_avail_widget\'); ?></label>
        <select name="<?php echo $this->get_field_name(\'select\'); ?>" id="<?php echo $this->get_field_id(\'select\'); ?>" class="widefat">

            <option value="Select A Page">
                <?php echo esc_attr( __(\'Select A Page\') ); ?>
            </option>
            <?php
                $pages = get_pages();
                foreach ($pages as $page) { 
                    echo \'<option value="\'.get_page_link($page->ID).\'" id="\' . $page->post_title . \'"\', $select == get_page_link($page->ID) ? \' selected="selected"\' : \'\', \'>\', $page->post_title, \'</option>\';
                    }
                ?>

        </select>
    </p>

结束

相关推荐

Dynamic Width of Widgets

好的,我在一个侧边栏中为最多6个小部件使用以下代码function s57d_sidebar1_params($params) { $sidebar_id = $params[0][\'id\']; if ( $sidebar_id == \'sidebar-1\' ) { $total_widgets = wp_get_sidebars_widgets(); $sidebar_widgets = count($total_wi