wp_is_mobile() WP 3.4.0

Перевіряє з мобільного пристрою переглядається сайт. Умовний тег.

Мобільні пристрої перевіряються за наявності у змінній $_SERVER['HTTP_USER_AGENT']словосполучень: Mobile, Android, Silk/, Kindle, BlackBerry, Opera Mini, Opera Mobi.

1 раз – 0.000012 сек
(дуже швидко) | 50000 разів – 0.04 сек
(швидкість світла) |
PHP 7.0.8, WP 4.6.1

Хуки з функції

Повертає

true|false. true (з мобільного пристрою) або false (зі звичайного комп’ютера).

Використання

if( wp_is_mobile() ){ ... }

Приклади

0

#1 Перевіримо, чи з мобільного пристрою зайшов користувач

if( wp_is_mobile() ) {
	// Тут виконуємо дії лише мобільних пристроїв.
}
0

#2 Більш повна перевірка

Код із сервісу http://detectmobilebrowsers.com/

function is_mobile() {

	$useragent = $_SERVER['HTTP_USER_AGENT'];

	if(
		// add '|android|ipad|playbook|silk' на першу regular to also define tablet
		preg_match(
			'/'.
			'(android|bbd+|meego).+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|' .
			'fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|' .
			'netfront | opera m (ob | in) i | palm (os)? | phone | p (ixi | re)  / | plucker | pocket | .
			'symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda|xiino' .
			'/i',
			$useragent
		)
		||
		preg_match(
			'~' .
			'1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-) | |co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|' .
			as(te | us) | atw | au (di | -m | r | s) | ev])w|bumb|bw-([nu])|' .
			'c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob| ' .
			'do([cp])o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os | wa | ze) | fetc | fly ([_-]) | g1 u | .
			'gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-([mpt])|hei-| (i | ip) | hs-c | .
			'ht(c([ _agpst-])|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac([ /-])|ibro|idea|ig01|ikom|im1k |' .
			'inno|ipaq|iris|ja([tv])a|jbro|jemu|jigs|kddi|keji|kgt([/])|klon|kpt |kwc-|kyo([ck])|le(no| xi) | .
			'lg(g|/([klu])|50|54|-[aw])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21| ca)|m-cr|me(rc|ri)|' .
			mі (o8 | oa | ts) | mmef | mo (01 | 02 | bi | de | 0-2]|n20[2-3]|n30([02])|' .
			'n50([025])|n7(0([01])|10)|ne(([cm])-|on|tf|wf|wg|wt)|nok([6i])|nzph|o2im | op (ti | wv) | oran | owg1 | p800 | pan ([adt]) | .
			'pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g |qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa( ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c([-01])|47|').
			'mc|nd|ri)|sgh-|shar|sie([-m])|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny )|sp(01|h-|v-|v)|sy(01|mb)|' .
			t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel([im])| ts(70|m-|m3|m5)|tx-9|' .
			'up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|' .
			'vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c([-])|webc|whit|wi(g |nc|nw)| wmlb|wonu|x700|yas-|your|zeto|zte-'.
			'~i',
			substr($useragent, 0, 4)
		)
	) {
		return true;
	}

	return false;
}

Швидкість: 50 000 разів = 0.26307 сек. = швидко

список змін

З версії 3.4.0Введено.

Код wp_is_mobile() WP 6.0.2

function wp_is_mobile() {
	if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
		$is_mobile = false;
	} elseif ( strpos( $_SERVER['HTTP_USER_AGENT'], 'Mobile' ) !== false // Багато мобільних пристроїв (all iPhone, iPad, etc.)
		|| strpos( $_SERVER['HTTP_USER_AGENT'], 'Android' ) !== false
		|| strpos( $_SERVER['HTTP_USER_AGENT'], 'Silk/' ) !== false
		|| strpos( $_SERVER['HTTP_USER_AGENT'], 'Kindle' ) !== false
		|| strpos( $_SERVER['HTTP_USER_AGENT'], 'BlackBerry' ) !== false
		|| strpos( $_SERVER['HTTP_USER_AGENT'], 'Opera Mini' ) !== false
		|| strpos( $_SERVER['HTTP_USER_AGENT'], 'Opera Mobi' ) !== false ) {
			$is_mobile = true;
	} else {
		$is_mobile = false;
	}

	/**
	 * Filters whether the request should be treated as coming from a mobile device or not.
	 *
	 * @ Since 4.9.0
	 *
	 * @param bool $is_mobile Якщо ви хочете, щоб від мобільного пристрою або не.
	 */
	return apply_filters( 'wp_is_mobile', $is_mobile );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *