Yoast\WP\SEO\Repositories
Indexable_Cleanup_Repository::get_reassigned_authors
Fetches pairs of old_id -> new_id indexed by old_id. By using the old_id (i.e. the id of the user that has been deleted) as key of the associative array, we can easily compose an array of unique pairs of old_id -> new_id.
Метод класса: Indexable_Cleanup_Repository{}
Хуков нет.
Возвращает
int|true|false. The associative array with shape [ old_id => [ old_id, new_author ] ] or false if query to get data fails.
Использование
// private - только в коде основоного (родительского) класса $result = $this->get_reassigned_authors( $limit );
- $limit(int) (обязательный)
- The limit we'll apply to the queries.
Код Indexable_Cleanup_Repository::get_reassigned_authors() Indexable Cleanup Repository::get reassigned authors Yoast 26.9
private function get_reassigned_authors( $limit ) {
global $wpdb;
$indexable_table = Model::get_table_name( 'Indexable' );
$posts_table = $wpdb->posts;
// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Reason: There is no unescaped user input.
$query = $wpdb->prepare(
"
SELECT {$indexable_table}.author_id, {$posts_table}.post_author
FROM {$indexable_table} JOIN {$posts_table} on {$indexable_table}.object_id = {$posts_table}.id
WHERE object_type='post'
AND {$indexable_table}.author_id <> {$posts_table}.post_author
GROUP BY {$indexable_table}.author_id, {$posts_table}.post_author
ORDER BY {$indexable_table}.author_id
LIMIT %d",
$limit
);
// phpcs:enable
// phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared,WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching -- Reason: Already prepared.
return $wpdb->get_results( $query, \OBJECT_K );
}