true, '_builtin' => true, ]; $valid_post_types = get_post_types( $args, 'names', 'and' ); unset( $valid_post_types['attachment'] ); foreach ( $post_types as $key => $post_type ) { if ( ! post_type_exists( $post_type ) || ! array_key_exists( $post_type, $valid_post_types ) ) { unset( $post_types[ $key ] ); } } return $post_types; } return $new_settings_class_exists ? \EqualizeDigital\AccessibilityCheckerPro\Admin\Settings::get_scannable_post_types() : \EDACP\Settings::get_scannable_post_types(); } /** * Gets a count of posts that are scannable. * * @return integer */ public static function get_scannable_posts_count() { global $wpdb; $post_types = self::get_scannable_post_types(); $post_statuses = self::get_scannable_post_statuses(); if ( ! empty( $post_types ) && ! empty( $post_statuses ) ) { $sql = "SELECT COUNT(id) FROM {$wpdb->posts} WHERE post_type IN(" . Helpers::array_to_sql_safe_list( $post_types ) . ') and post_status IN(' . Helpers::array_to_sql_safe_list( $post_statuses ) . ')'; // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching return $wpdb->get_var( $sql ); } return 0; } }