我的widget表单中有一个小怪癖。保存小部件实例后,表单将使用从wp\\u下拉菜单中选择的错误“page\\u id”进行刷新。如果我刷新widgets页面,则在下拉列表中选择正确的保存的page\\u id。以下是代码部分:
public function form( $instance ) {
if( isset( $instance[\'page_id\'] ) ) {
$page_id = $instance[\'page_id\'];
} else {
$page_id = 0;
}
?>
<p class="description">Select a post to display it\'s excerpt</p>
<?php
$args = array(
\'id\' => $this->get_field_id(\'page_id\'),
\'name\' => $this->get_field_name(\'page_id\'),
\'selected\' => $page_id
);
wp_dropdown_pages( $args );
}
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance[\'page_id\'] = ( !empty( $new_instance[\'page_id\'] ) ) ? (int)$instance[\'page_id\'] : \'\';
return $instance;
}
因此,当我单击“保存”时,error\\u logging$page\\u id将输出0,但如果我刷新,$page\\u id将是我需要的正确页面id。
有什么想法吗?