Wersja mobilna
-
Witam
Jako jeszcze nie fan widoków responsywnych, stworzyłem wersję mobilną szablonu, okrojoną o kilka funkcji, stylów itp. w celu szybszego ładowania treści.
Wersja mobilna szablonu jest ładowana przy pomocy wordpressowej funkcji wp_is_mobile. Jeżeli jest to urządzenie mobilne wtedy pokazuje się wersja dedykowana urządzeniu.
Do każdego adresu url dodałem mobile na początku, tak żeby w przypadku cache’owania nie wystąpił błąd, jednak nie wiem czy tak się nie stanie. O ile nie miałem problemu ze zmianą szablonów dla wersji mobilnej to nie wiem czy skrypt odpowiedzialny za url jest poprawny:
if( !is_admin() ) { if( wp_is_mobile() AND $responsive_options['mobile'] == 1 ) { function mobile_rewrite_permalinks() { global $wp_rewrite; add_rewrite_rule('^mobile','index.php','top'); $wp_rewrite->authorbase = 'mobile/author'; $wp_rewrite->category_base = 'mobile/category'; $wp_rewrite->search_base = 'mobile/search'; $wp_rewrite->pagination_base = 'mobile/page'; $wp_rewrite->feed_base = 'mobile/feed'; $wp_rewrite->comments_base = 'mobile/comments'; $wp_rewrite->page_structure = 'mobile/%pagename%'; $wp_rewrite->date_structure = 'mobile/%year%/%monthnum%/%day%'; $wp_rewrite->permalink_structure = 'mobile/%postname%'; $wp_rewrite->root = 'mobile/'; $wp_rewrite->flush_rules(); } add_action('init','mobile_rewrite_permalinks'); } }
Powyższy kod dodaje do każdego adresu przedrostek mobile. Wykonałem testy i wydaje mi się, że wszystko działa poprawnie.
Czy możecie ocenić czy takie rozwiązanie jest prawidłowe? Widziałem, różne rozwiązania przepisywania url, jednak znalazłem lepsze rozwiązanie a raczek łatwiejsze.
Reszta kodu:
function mobile_redirect() { if( is_home() ) { include( get_template_directory() . '/mobile/home.php' ); exit(); } if( is_single() ) { include( get_template_directory() . '/mobile/single.php' ); exit(); } if( is_page() ) { include( get_template_directory() . '/mobile/page.php' ); exit(); } if( is_category() || is_archive() ) { include( get_template_directory() . '/mobile/category.php' ); exit(); } if( is_search() ) { include( get_template_directory() . '/mobile/search.php' ); exit(); } } function stylesheet_mobile($stylesheet_dir_uri, $theme_name){ $subdir = '/mobile/css'; return $stylesheet_dir_uri.$subdir; } if( wp_is_mobile() AND $responsive_options['mobile'] == 1 ) { add_filter('show_admin_bar', '__return_false'); add_action( 'template_redirect', 'mobile_redirect' ); add_filter('stylesheet_directory_uri','stylesheet_mobile',10,2); }
- Temat ‘Wersja mobilna’ jest zamknięty na nowe odpowiedzi.