get_var( $wpdb->prepare( 'SELECT id FROM %i WHERE slug = %s', $table, $slug ) ); if ( $id ) { return $id; } $wpdb->insert( $table, array( 'slug' => $slug, 'name' => $name, 'created_at' => current_time( 'mysql', true ), ) ); return (int) $wpdb->insert_id; } /** * @return array ID => name, alphabetical. */ public function all(): array { global $wpdb; $rows = (array) $wpdb->get_results( $wpdb->prepare( 'SELECT id, name FROM %i ORDER BY name', Tables::categories() ) ); $list = array(); foreach ( $rows as $row ) { $list[ (int) $row->id ] = (string) $row->name; } return $list; } }