অন্যান্য অন্যান্যদের মতো আমিও ডাব্লুপিটিচ ব্যবহার করার পরামর্শ দিচ্ছি। তবে এটি অন্যান্য ওয়েবসাইট ফর্ম্যাটের তুলনায় ব্লগগুলিকে সমর্থন করার জন্য আরও বেশি নির্মিত, তাই আমি জানি এটি মোবাইল সলিউশনের প্যানাসিয়া নয় (আমি আমার পোর্টফোলিওটি আমার ব্লগের পাশাপাশি চালাই এবং আমার পোর্টফোলিও ****
WPTouch এর মতো দেখায় )।
সুতরাং মোবাইল ব্রাউজার সনাক্তকরণের প্রতিরূপ তৈরি করতে আপনার যে প্রাসঙ্গিক অংশগুলি ব্যবহার করতে হবে তা খুঁজতে আমি কোডটি একবার দেখে নিই। প্রথমত, জান ফ্যাব্রি দ্বারা উল্লিখিত, মোবাইল ব্রাউজার ব্যবহারকারী এজেন্টগুলির একটি তালিকা। ডাব্লুপিছুটিতে একটি ডিফল্ট তালিকা অন্তর্ভুক্ত থাকে তবে এটি আপনাকে একটি কাস্টম ব্যবহারকারী এজেন্টসকে একটি সেটিং সহ বা একটি ফিল্টার নামে পরিচিত করতে দেয় wptouch_user_agents
:
function bnc_wptouch_get_user_agents() {
$useragents = array(
"iPhone", // Apple iPhone
"iPod", // Apple iPod touch
"Android", // 1.5+ Android
"dream", // Pre 1.5 Android
"CUPCAKE", // 1.5+ Android
"blackberry9500", // Storm
"blackberry9530", // Storm
"blackberry9520", // Storm v2
"blackberry9550", // Storm v2
"blackberry9800", // Torch
"webOS", // Palm Pre Experimental
"incognito", // Other iPhone browser
"webmate", // Other iPhone browser
"s8000", // Samsung Dolphin browser
"bada" // Samsung Dolphin browser
);
$settings = bnc_wptouch_get_settings();
if ( isset( $settings['custom-user-agents'] ) ) {
foreach( $settings['custom-user-agents'] as $agent ) {
if ( !strlen( $agent ) ) continue;
$useragents[] = $agent;
}
}
asort( $useragents );
// WPtouch User Agent Filter
$useragents = apply_filters( 'wptouch_user_agents', $useragents );
return $useragents;
}
প্লাগইনের মাংস যদিও একটি শ্রেণি:
class WPtouchPlugin {
var $applemobile;
var $desired_view;
var $output_started;
var $prowl_output;
var $prowl_success;
...
প্লাগইনটির কনস্ট্রাক্টর ( function WPtouchPlugin()
) প্রথমে plugins_loaded
মোবাইল ব্রাউজারের ব্যবহারকারী এজেন্ট সনাক্ত করার জন্য হুকটিতে একটি ক্রিয়া যুক্ত করে এবং $applemobile
সত্য হিসাবে সেট হয়। এখানে নির্দিষ্ট ফাংশনটি রয়েছে:
function detectAppleMobile($query = '') {
$container = $_SERVER['HTTP_USER_AGENT'];
$this->applemobile = false;
$useragents = bnc_wptouch_get_user_agents();
$devfile = compat_get_plugin_dir( 'wptouch' ) . '/include/developer.mode';
foreach ( $useragents as $useragent ) {
if ( preg_match( "#$useragent#i", $container ) || file_exists( $devfile ) ) {
$this->applemobile = true;
}
}
}
এখন প্লাগইনটি জানেন যে আপনি একটি মোবাইল ব্রাউজার ব্যবহার করছেন (ব্রাউজারের ব্যবহারকারী এজেন্ট অনুসারে)। প্লাগইনটির পরবর্তী মাংসল অংশটি ফিল্টারগুলির একটি সেট:
if ( strpos( $_SERVER['REQUEST_URI'], '/wp-admin' ) === false ) {
add_filter( 'stylesheet', array(&$this, 'get_stylesheet') );
add_filter( 'theme_root', array(&$this, 'theme_root') );
add_filter( 'theme_root_uri', array(&$this, 'theme_root_uri') );
add_filter( 'template', array(&$this, 'get_template') );
}
এই ফিল্টারগুলির প্রত্যেককে একটি পদ্ধতি কল করে যা $applemoble
সত্য হিসাবে সেট করা আছে কিনা তা যাচাই করে । যদি তা হয়, তবে ওয়ার্ডপ্রেস আপনার থিমের জন্য ডিফল্টর পরিবর্তে আপনার মোবাইল স্টাইলশীট, আপনার মোবাইল থিম এবং একটি মোবাইল পোস্ট / পৃষ্ঠার টেম্পলেট ব্যবহার করবে। মূলত, আপনি ব্রাউজারের ডিফল্ট আচরণের উপর ভিত্তি করে ব্রাউজার ব্যবহার হচ্ছে কিনা তার ভিত্তিতে কোনও ব্যবহারকারী এজেন্ট রয়েছে যা আপনার "মোবাইল ব্রাউজারগুলির" তালিকার সাথে মেলে।
ডাব্লুপিছুতে মোবাইল থিমটি বন্ধ করার ক্ষমতাও অন্তর্ভুক্ত রয়েছে - আপনি যখন কোনও আইফোনটিতে ডাব্লুপিটচ সাইটটি দেখেন, নীচের অংশে একটি বোতাম রয়েছে যা আপনাকে সাইটটি সাধারণত দেখার সুযোগ দেয়। আপনি নিজের সমাধান তৈরি করার সময় আপনি এটি বিবেচনা করতে চাইতে পারেন।
দাবি অস্বীকার : উপরের সমস্ত কোড ডাব্লুপিটিউচ সংস্করণ 1.9.19.4 এর জন্য উত্স থেকে অনুলিপি করা হয়েছিল এবং জিপিএল এর আওতায় সুরক্ষিত রয়েছে। আপনি যদি কোডটি পুনরায় ব্যবহার করেন তবে আপনার সিস্টেমকে অবশ্যই জিপিএলের শর্তাদি মেনে চলতে হবে। আমি এই কোডটি লিখিনি।