db ?? $GLOBALS['wpdb']; // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- only core table names interpolated. $keys = $wpdb->get_col($wpdb->prepare( "SELECT DISTINCT pm.meta_key FROM {$wpdb->postmeta} pm INNER JOIN ( SELECT ID FROM {$wpdb->posts} WHERE post_type = %s AND post_status NOT IN ('auto-draft', 'trash') ORDER BY ID DESC LIMIT %d ) recent ON recent.ID = pm.post_id ORDER BY pm.meta_key LIMIT %d", $postType, self::SAMPLE_POSTS, self::MAX_KEYS )); $fields = []; foreach ((array) $keys as $key) { $key = (string) $key; if ($key === '' || str_starts_with($key, '_')) { continue; } $fields[] = new FieldDefinition( $key, $key, 'unknown', 'sample', $this->readOnly ? FieldDefinition::READONLY : FieldDefinition::UNKNOWN ); } return $fields; } }