Задать вопрос

Как проверить url аватарки на 404 в WordPress?

На сайте были потеряны медиафайлы с аватарками пользователей - соответственно в базе остались записи на url (таблица wp_postmeta, поле profilepicture), хочу очистить данную мету для тех аватаров которые потерялись - пробую так
function wph_set_default_avatar() {
	$i = 0;
	$s = 0;
	$users = get_users();
	foreach ($users as $user) {
		$userid = $user->ID;
		$avatar_url = get_user_meta($userid, 'profilepicture');
		if ($avatar_url<>'') {
			$i++;
			$is_url = has_gravatar($avatar_url);
			if (! $is_url) {
				error_log('['.$userid.']='.$is_url);
				$s++;
			}
		}
	}
}

function has_gravatar( $url ){
	$Headers = @get_headers($url);
	// проверяем ли ответ от сервера с кодом 200 - ОК
	if(strpos('200', $Headers[0])) {
		return true;
	} else {
		return false;
	}
}


но почему-то возвращаются все пользователи, в чем проблема ?
  • Вопрос задан
  • 207 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
redmo
@redmo Автор вопроса
в итоге сделал так

function wph_set_default_avatar() {
	$users = get_users('meta_key=profilepicture');
	foreach ($users as $user) {
		$userid = $user->ID;
		$avatar_url = get_user_meta($userid, 'profilepicture', true);
		if (!empty($avatar_url)) {
			if (!has_gravatar($avatar_url)) {
				delete_user_meta($userid,'profilepicture');
			} 
		}
	}
}

function has_gravatar( $url ){
	$Headers = get_headers($url);
	if ('HTTP/1.1 200 OK' == $Headers[0]) {
		return true;
	} else {
		return false;
	}
}
Ответ написан
Комментировать
Anastasia1999
@Anastasia1999
Учу php, практикуюсь
<?php echo get_avatar_url( $user_ID ); ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы