Yoast\WP\SEO\Repositories

Indexable_Cleanup_Repository::get_reassigned_authors()privateYoast 1.0

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() Yoast 24.0

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
		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 );
}