Yoast\WP\SEO\User_Meta\Infrastructure

Cleanup_Repository::delete_empty_usermeta_query()publicYoast 1.0

Deletes empty usermeta based on their meta_keys and returns the number of the deleted meta.

Метод класса: Cleanup_Repository{}

Хуков нет.

Возвращает

int|false. The number of rows that was deleted or false if the query failed.

Использование

$Cleanup_Repository = new Cleanup_Repository();
$Cleanup_Repository->delete_empty_usermeta_query( $meta_keys, $limit );
$meta_keys(array) (обязательный)
The meta to be potentially deleted.
$limit(int) (обязательный)
The number of maximum deletions.

Код Cleanup_Repository::delete_empty_usermeta_query() Yoast 25.1

public function delete_empty_usermeta_query( $meta_keys, $limit ) {
	global $wpdb;

	// phpcs:disable WordPress.DB.PreparedSQLPlaceholders.ReplacementsWrongNumber -- Reason: we're passing an array instead.
	$delete_query = $wpdb->prepare(
		'DELETE FROM %i
		WHERE meta_key IN ( ' . \implode( ', ', \array_fill( 0, \count( $meta_keys ), '%s' ) ) . ' )
		AND meta_value = ""
		ORDER BY user_id
		LIMIT %d',
		\array_merge( [ $wpdb->usermeta ], $meta_keys, [ $limit ] )
	);
	// phpcs:enable

	// phpcs:disable WordPress.DB.DirectDatabaseQuery.NoCaching -- Reason: No relevant caches.
	// phpcs:disable WordPress.DB.DirectDatabaseQuery.DirectQuery -- Reason: Most performant way.
	// phpcs:disable WordPress.DB.PreparedSQL.NotPrepared -- Reason: Is it prepared already.
	return $wpdb->query( $delete_query );
	// phpcs:enable
}