امین بهشتی

Design Tutorials

طراحی وِب و گرافیک

تشخیص کاربرانی که از موبایل برای بازدید سایت‌تان استفاده می‌کنند

Wordpress Mobile Detection

در این مطلب قصد دارم کمی در مورد تابع ()wp_is_mobile وردپرس که از نسخۀ 3.4 به بعد در هستۀ وردپرس گنجانده شده توضیح بدم.

با استفاده از این تابع می‌توانید تشخیص دهید که کاربری که از سایت‌تان بازدید می‌کند آیا از دستگاه‌های موبایل استفاده می‌کند یا خیر. این یک تابع boolean می‌باشد به این معنی که مقدار بازگشتی یا TRUE هست یا FALSE .

منتهی مشکلی که وجود دارد این هست که بسیاری از کاربران نسخۀ وردپرس‌شان را (بنا به هر دلیلی) بروز نکرده‌اند و هنوز از ورژن‌های قدیمی‌تر از 3.4 استفاده می‌کنند. امّا با تکه کدی که در زیر معرفی خواهم کرد این کاربران نیز می‌توانند از این تابع استفاده نمایند. حتی می‌شود از کد زیر در سایت‌های غیر وردپرسی نیز استفاده کرد.

برای استفاده از این تابع در سایت وردپرسی‌تان می‌توانید کد زیر را در فایل functions.php پوسته‌تان وارد نمایید :

// version proof, checks if the visitor is from a mobile device
function muneeb_wp_is_mobile() {
    if ( function_exists( 'wp_is_mobile' ) )
        return wp_is_mobile();
    //code from wp_is_mobile function, wp_is_mobile() is located in wp-includes/vars.php WP version 3.4
    static $is_mobile;
    if ( isset($is_mobile) )
        return $is_mobile;
    if ( empty($_SERVER['HTTP_USER_AGENT']) ) {
        $is_mobile = false;
    } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (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 ) {
            $is_mobile = true;
    } else {
        $is_mobile = false;
    }
    return $is_mobile;
}
if ( muneeb_wp_is_mobile() ){
//do mobile stuff here
} 

منبع

درباره امین بهشتی

یک ایرانی ترک زبان که علاقه زیادی به طرّاحی وِب و گرافیک دارد!
در این سایت سعی می‌کنم مطالب جالب، مفید و کاربردی را در جهت آموزش به اشتراک بگذارم!
امیدوارم لحظات خوشی را در سایت سپری نمایید و مطالب سایت مورد استفاده شما قرار بگیرد.
سپاس

    • سلام،

      داخل شرطی که در قسمت آخر کد اشاره شده می‌توانید کدهای مربوط به کاربران موبایل را بنویسید.
      یعنی آنجا که بصورت کامنت نوشته “do mobile stuff here” یک کد برای هدایت کاربر به دامنه مورط نظرتان بنویسید.

      به عنوان مثال می‌توانید از جاوا اسکریپت به صورت زیر استفاده کنید:

      if ( muneeb_wp_is_mobile() ){
      	echo "<script>window.location='http://domain/mobile'</script>";
      }
      

      سپاس

  1. سلام
    ممنون از پست اموزندتون
    من از پلاگین wp mobile detect استفاده میکنم
    متاسفانه تازه وارد هستم
    اگه میشه راهنمایی بفرمایید که اگر بخواهیم کاربرانی که فقط با موبایل از سایت دیدن میکنند موفق به دیدن محتوای سایت بشن چه اسکریپتی رو در کجا باید وارد کنیم
    ممنونم

    • سلام،
      بستگی به ساختار قالب سایت‌تان داره.
      حالا فرض کنیم که از یک ساختار استاندارد عمومی استفاده می‌کنید. در این صورت می‌تونید بصورت زیر عمل کنید :

      • کل محتویات فایل index.php پوسته خود را در یک جای دیگر کپی کرده و نگاه دارید (در مراحل بعدی این محتوی را paste خواهیم کرد).
      • سپس کل محتوای فایل index.php را پاک کنید و کد بالا را که معرفی کردم کپی پی‌ست کنید.
      • حال محتوای قبلی را که در جای دیگر نگاه داشته بودید را داخل شرط muneeb_wp_is_mobile پی‌ست کنید.

      سپاس

      ببینید من افزونه‌ای که فرمودید را نمی‌دونم جک نکردم.
      اگر از وردپرس استفاده می‌کنید، وردپرس خودش یک تابع برای تشخیص کاربران موبایل داره بنام wp_is_mobile که کار را خیلی راحت می‌کنه!

      شما می‌تونید تنها با قرار دادن کد زیر در ابتدای فایل header.php پوسته خود سایت‌تان را فقط برای کاربران موبایل نمایش دهید :

      if ( wp_is_mobile() == false ) wp_die('این سایت تنها برای کاربران موبایل قابل نمایش می‌باشد!');
      

درصورت تمایل برای ارسال دیدگاه‌تان از فرم زیر می‌توانید استفاده کنید ↓

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

(الزامی*)

می‌توانید از نشان و برچسب‌های HTML زیر در متن دیدگاه‌تان استفاده کنید:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
(الزامی*)
(اختیاری)

لطفاً جای‌خالی در معادله زیر را پر کنید: * Time limit is exhausted. Please reload the CAPTCHA.