Intereting Posts

Как остановить мобильную тему, наследующую меню навигации на рабочем столе?

UPDATE ************ Ну, у меня есть рабочее решение, хотя и не идеальное.

Используя дочернюю тему песочницы Genesis, которая имеет встроенную встроенную навигационную кнопку, я смог установить это, чтобы использовать основное навигационное меню, чтобы заботиться о минимальных рабочих столах.

Затем я добавил плагин адаптивного меню, который позволил мне выбрать мое собственное мобильное меню для источника. Затем я спрятал плагин для использования на рабочем столе и спрятал кнопку меню Genesis для мобильных телефонов.

Оставьте его на несколько дней, а затем выберите, кто получит 50 очков – благодаря всем вашим вкладам …


(ВОПРОСЫ RE-PHRASED) Попытка создать мобильную версию моего сайта.

2 темы, 1 для рабочего стола и еще только для мобильных посетителей (мобильная тема автоматически выбирается для мобильных посетителей с помощью «любого мобильного плагина для темы»).

Я создал пользовательское меню для каждой темы в wp admin / menus – меню рабочего стола и меню для мобильных устройств.

При активации темы рабочего стола я выбираю меню рабочего стола для основной навигации. С активированной мобильной темой я установил основную навигацию в меню для мобильных устройств.

Проблема в том, что для нормальной работы я должен иметь тему рабочего стола. Посетители мобильных телефонов видят альтернативную мобильную тему, но навигация всегда следует за настройкой основной навигации для настольных компьютеров.

Как я могу остановить это и заставить мобильную тему использовать / использовать только мобильную навигацию?

Я думаю, что дни создания отдельной темы для мобильных пользователей давно прошли. При правильном планировании и макете вы можете использовать одну тему на настольных компьютерах, ноутбуках, планшетах и ​​мобильных устройствах

Я бы занялся этим по-другому.

  • Во-первых, я бы создал свою тему таким образом, чтобы она реагировала на требуемые экраны, как обычно. Примеры см. В связанных тематиках, особенно с двадцати двух

  • Используйте wp_is_mobile() для загрузки функций, которые будут специфичны только для мобильных телефонов. Я также создаю файл функций separte только для моих мобильных функций, чтобы они были организованы. пример

     if(wp_is_mobile()) { //DO SOMETHING FOR MOBILE }else{ //DO SOMETHING FOR EVERYTHING ELSE NOT MOBILE } 
  • Создайте таблицу стилей spearate только для ваших мобильных стилей, а затем установите эту таблицу стилей условно, используя условный тег wp_is_mobile() . Просто не забудьте добавить приоритет к вашему действию, чтобы всякий раз, когда эта таблица стилей загружалась, он загружается мертвым последним.

Для меню я также рассмотрю связанные темы. Мне нравится меню в двадцать четыре часа и как он реагирует. Все обрабатывается простыми js изнутри functions.js. Вы можете использовать это и адаптировать его в своей собственной теме. Я никогда не работал с генезисом, поэтому я не знаю, какие крючки они используют.

Также замечательная идея взята из этого урока от wpmudev.org, который в основном включает плагин Sidr Alberto Valero для jQuery. Я использовал его в одной из моих 20-летних детских тем, и он отлично работает.

Это всего лишь несколько альтернатив, которые вы можете рассмотреть. Я надеюсь, что некоторые из них помогут решить вашу проблему

Создайте 2 меню. Один для отображения на мобильных телефонах и один по умолчанию для настольных компьютеров. Добавьте этот код в свой заголовок.php или вы можете использовать hook в вашем файле функций.

 <?php if ( wp_is_mobile() ) { wp_nav_menu( array( 'theme_location' => 'mobile-menu' ) ); } else { wp_nav_menu( array( 'theme_location' => 'desktop-menu' ) ); } ?> 

Или вы можете создать 2 пользовательских меню и использовать этот код:

 <?php if ( wp_is_mobile() ) { wp_nav_menu( array( 'menu' => 'mobile-menu' ) ); } else { wp_nav_menu( array( 'menu' => 'desktop-menu' ) ); } ?> 

Или вы можете переключать темы условно:

 add_filter( 'stylesheet', 'wpsites_change_themes' ); add_filter( 'template', 'wpsites_change_themes' ); function wpsites_change_themes( $theme ) { if ( wp_is_mobile() ) $theme = 'my-mobile-theme'; return $theme; } 

После 5 дней поиска в Google, проб и ошибок и множества плагинов, у меня наконец есть решение, которое работает для меня.

Я вернулся к использованию общей темы для посетителей рабочего стола и мобильных устройств, но каждый из них имеет собственное меню. Это стало легче для меня, потому что я экспериментирую с базой Genesis, и их дочерняя система «Песочница» имеет встроенную встроенную функцию сглаживания / передвижения. Поэтому я просто устанавливаю основные и мобильные параметры в меню рабочего стола.

Чтобы обслуживать мобильных посетителей, я установил отличный плагин «отзывчивого меню»: https://wordpress.org/plugins/responsive-menu/. Это дает вам возможность выбрать другое пользовательское меню для своего источника, поэтому я установил это для мое мобильное меню.

Добавление адаптивного плагина означает, что в итоге у меня появилось 2 навигационных меню, поэтому я использовал немного условного CSS, чтобы скрыть отзывчивое меню на рабочем столе и скрыть меню Genesis для мобильных телефонов.

 <?php if (wp_is_mobile() ): ?> <style type="text/css"> .desktop-nav{display: none;} #click-menu{display:block;} </style> <?php endif; ?> 

Нажмите меню – это div для чувствительного меню. Функция «wp_is_mobile» может быть более точно нацелена, если необходимо установить плагин mobble.

Я даже добавил перенаправление страницы для мобильных посетителей, что приводит их к моей отредактированной версии домашней страницы:

 function so16165211_mobile_home_redirect(){ if( wp_is_mobile() && is_front_page() ){ wp_redirect( '/mobile-home' ); exit; } } add_action( 'template_redirect', 'so16165211_mobile_home_redirect' ); 

Итак, у вас есть это! Это приемлемое решение для меня сейчас. В идеале я мог бы предложить посетителям мобильных телефонов возможность выбрать мобильный или рабочий стол, но это, похоже, связано с настройкой файлов cookie, которые могут быть вопросом на другой день.

Еще раз спасибо ВСЕМ, кто нашел время ответить – особенно те, кто предположил, что наличие двух разных тем не лучший подход.

Это довольно странно, когда есть две темы, которые вы описываете, но я думаю, что мы можем понять это.

В обеих тем, где напечатано ваше меню (возможно, header.php ), вам понадобится такой код, который выбирает правильное меню, а затем печатает его:

 $desktop_theme_name = 'Desktop Theme Name'; // Replace this with the name of the desktop theme $mobile_theme_name = 'Mobile Theme Name'; // Replace this with the name of the mobile theme // Get the current theme's information $current_theme = wp_get_theme(); if ( $current_theme->Name == $desktop_theme_name ) { // Print desktop menu // NOTE: Instead of using "theme_location" use "menu" wp_nav_menu( array( 'menu' => 'Desktop Menu', // Replace this with the name, slug, or ID of your desktop menu // Rest of menu options if needed ) ); } else if ( $current_theme->Name == $mobile_theme_name ) { // Print mobile menu wp_nav_menu( array( 'menu' => 'Mobile Menu', // Replace this with the name, slug, or ID of your mobile menu // Rest of menu options if needed ) ); } else { // Not using one of the special themes, so just print the menu! wp_nav_menu(); } 

Надеюсь, что это поможет, удачи!