Wsparcie » Wtyczki » 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.