我正在為我的WordPress外掛程式建立一個函數,它會顯示一個下拉列表,其中包含所有可用的頁面。當我點擊“儲存變更”時,值會完美地保存在資料庫中。它也完美地更新了值。但是,選擇的值沒有顯示在下拉清單中。當點選「儲存變更」時,值會被儲存,但是下拉清單會再次重設為「選擇一個」。它不能顯示所選的選項。我在這裡做錯了什麼嗎?任何指導都將不勝感激。
<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>
P粉1976397532023-09-13 12:24:36
好的,所以我找到了解決我的問題的方法。下面是貼上的程式碼;對某人可能有幫助。
<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>