你必须使用get_results()
而不是WP_Query
.
我已经对您的代码进行了更改,并在我的终端进行了测试,它对我很有效。我还使用update()
小部件的功能。您可以从下面的代码中获取参考。
public function form( $instance ) {
if ( isset( $instance[ \'mydropdown\' ] ) )
$selectedvalue = $instance[ \'mydropdown\' ];
else
$selectedvalue = __( \'\', \'text-domain\' );
global $event;
global $events;
global $wpdb;
$events = $wpdb->get_results("SELECT id, event FROM mo_Event",ARRAY_A);
?>
<select class="dropdown" id="<?php echo $this->get_field_name( \'mydropdown\' ); ?>" name="<?php echo $this->get_field_name( \'mydropdown\' ); ?>" title="My Dropdown">
<?php
foreach ($events as $event) {
$selected = ($event->id == $selectedvalue) ? \'selected\' : \'\';
echo \'<option value="\'.$event->id.\'" \'.$selected.\'>\'.$event->event.\'</option>\';
}
?>
</select>
<?php
}
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance[\'mydropdown\'] = ( ! empty( $new_instance[\'mydropdown\'] ) ) ? strip_tags( $new_instance[\'mydropdown\'] ) : \'\';
return $instance;
}