我正在為我的WordPress插件構建一個函數(shù),它會顯示一個下拉列表,其中包含所有可用的頁面。當我點擊“保存更改”時,值會完美地保存在數(shù)據(jù)庫中。它也完美地更新了值。但是,選擇的值沒有顯示在下拉列表中。當點擊“保存更改”時,值會被保存,但是下拉列表會再次重置為“選擇一個”。它不能顯示所選的選項。我在這里做錯了什么嗎?任何指導都將不勝感激。
<form method=post> <div class="header-right"> <?php $posts = get_pages( array( 'post_status' => 'publish', ) ); ?> <select name="page_for_logged_in" id="page_for_logged_in"> <option selected="selected">選擇一個</option> <?php foreach ( $posts as $page ) { ?> <option value="<?php echo esc_attr( $page->post_name ); ?>" <?php selected(get_option('page_for_logged_in'), 'page')?>><?php echo esc_html( $page->post_title ); ?></option> <?php } ?> </select> <?php if(empty($_POST['page_for_logged_in'])) { } else { $myvalue=$_POST['page_for_logged_in']; update_option('page_for_logged_in', $myvalue, $autoload = 'no'); } ?> <?php submit_button(); ?> </p> </br> </br> </form>
好的,所以我找到了解決我的問題的方法。下面是粘貼的代碼;對某人可能有幫助。
<form method=post> <div class="header-right"> <?php $posts = get_pages( array( 'post_status' => 'publish', ) ); ?> <?php if(empty($_POST['page_for_logged_in'])) { } else { $myvalue=$_POST['page_for_logged_in']; update_option('page_for_logged_in', $myvalue, $autoload = 'yes'); } ?> <select name="page_for_logged_in" id="page_for_logged_in"> <option value="" disabled selected>選擇一個</option> <?php foreach ( $posts as $page ) { ?> <option value="<?php echo esc_attr( $page->post_title ); ?>" <?php echo ( get_option('page_for_logged_in') == $page->post_title ? 'selected' : '' ); ?>><?php echo esc_html( $page->post_title ); ?></option> <?php } ?> </select> <?php submit_button(); ?> </p> </br> </br> </form>