用于选择页面的Get_Pages下拉列表

时间:2015-01-22 作者:pSyToR

我目前正在开发一个插件内的管理页面,我需要有一个下拉列表,列出所有的网页。我需要能够选择一个页面,并将“ID”保存为一个选项。我目前正在使用:

<select name="easyreg_redirect_page"> 
    <option value=""><?php echo esc_attr( __( \'Select page\' ) ); ?></option> 
    <?php 
        $pages = get_pages(); 
        foreach ( $pages as $page ) {
            $option = \'<option value="\' . $page->ID . \'">\';
            $option .= $page->post_title;
            $option .= \'</option>\';
            echo $option;
        }
    ?>
</select>
我的两个问题是:

1-我希望“选择页面”始终具有空值(我将检查它是否无法选择,但这是另一个故事;-))

2-当我回到插件管理页面时,我希望看到当前保存在选项中的页面名称,既不是和空行,也不是“选择页面”。

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

你已经有了<option value="">...</option> 您只需要为它添加一些额外属性,您需要加载当前值,如果值等于$page->ID 然后添加属性selected="selected"以下是如何做到这一点:

<select name="easyreg_redirect_page"> 
    <option selected="selected" disabled="disabled" value=""><?php echo esc_attr( __( \'Select page\' ) ); ?></option> 
    <?php
        $selected_page = get_option( \'option_key\' );
        $pages = get_pages(); 
        foreach ( $pages as $page ) {
            $option = \'<option value="\' . $page->ID . \'" \';
            $option .= ( $page->ID == $selected_page ) ? \'selected="selected"\' : \'\';
            $option .= \'>\';
            $option .= $page->post_title;
            $option .= \'</option>\';
            echo $option;
        }
    ?>
</select>
在哪里option_key 您应该在可以找到您的值的位置(保存位置)输入选项键

另外,你可以使用wordpressselected 要写入的函数selected="selected", 然后会是这样的:

$option = \'<option value="\' . $page-ID . \'" \' . selected( $selected_page, $page->ID ) . \'>\';

结束

相关推荐

WP_DROPDOWN_ROLES()替换选项值=CODE

我正在尝试替换插件中角色的硬编码下拉列表。目前代码如下:echo \'<select name=\"xf_user_role_\' . $id . \'\" id=\"xf_user_role_\' . $id . \'\">\'; ?> <option value=\'subscriber\' <?php echo ($xf_options[\'xf_user_role\'][$id] == \'subscriber\') ? \"sele