Intereting Posts
«Пользовательское поле» в поле «Выдержка» для страниц? Как получить размер пользовательских изображений в раскрывающемся списке загрузчиков мультимедиа? проблемы с неприкрепленными медиа-файлами? Получать meta_query значение пользователем meta array Как заставить WordPress запускать мероприятие каждый день? Вставить изображение или скрипт объявления после 3 сообщений, используя цикл WordPress заменяет знаки двойного минуса в заголовке сообщения, как отключить его? как установить изображение в виде миниатюры facebook PayPal Express на странице продукта в WooCommerce – похоже, не работает на странице продукта? Меню верхнего уровня администратора, указывающее на внешний URL-адрес Как отключить уведомления трекбэка в блоге WordPress.com? Перенаправление в старый домен после миграции Проверка подлинности WordPress с использованием настраиваемого php? События с несколькими датами события + постоянная ссылка для каждой даты Unix отметка времени для комментариев

Ограничение постов при посещении мобильных устройств

Я нашел это в Stackoverflow: https://stackoverflow.com/questions/21135388/wordpress-change-the-limit-of-the-number-of-posts-just-for-mobile

Я выполнил ответ, но он не сработал. Я работаю с шаблоном AccessPress Mag, количество сообщений на больших экранах равно неограниченному.

Это код, который я пробовал:

add_action('pre_get_posts','change_limit_mobile'); function change_limit_mobile($query){ $new_limit = 10; $iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone"); $android = strpos($_SERVER['HTTP_USER_AGENT'],"Android"); $ipad = strpos($_SERVER['HTTP_USER_AGENT'],"iPad"); $berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry"); $ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod"); if (( $iphone || $android || $ipad || $ipod || $berry ) && $query->is_main_query()){ set_query_var('posts_per_page',$new_limit); } } 

Я попытался добавить его на страницы functions.php и index.php, но не повезло.

Что-то изменилось с момента последнего обновления, или я что-то пропустил?

Solutions Collecting From Web of "Ограничение постов при посещении мобильных устройств"

Исходный ответ . Вместо этого вы можете попробовать использовать MobileESP, загрузив https://raw.githubusercontent.com/ahand/mobileesp/master/PHP/mdetect.php в свой каталог тем, а затем:

 function change_limit_mobile( $query ) { if ( $query->is_main_query() ) { require get_stylesheet_directory() . '/mdetect.php'; $mdetect = new uagent_info; if ( $mdetect->DetectMobileLong() ) { set_query_var( 'posts_per_page', 10 ); } } } 

Обновление : самое простое – использовать wp_is_mobile() – возможно, достаточно хорошо!

Тематическое обновление . В случае темы AccessPress Mag, которую вы используете, она использует свои собственные опции для управления количеством сообщений в специальных циклах блочных страниц домашней страницы. Один из способов их переопределения – определить собственную версию функции параметров фреймворка темы в функции functions.php:

 function of_get_option( $name, $default = false ) { $option_name = ''; // Gets option name as defined in the theme if ( function_exists( 'optionsframework_option_name' ) ) { $option_name = optionsframework_option_name(); } // Fallback option name if ( '' == $option_name ) { $option_name = get_option( 'stylesheet' ); $option_name = preg_replace( "/\W/", "_", strtolower( $option_name ) ); } // Get option settings from database $options = get_option( $option_name ); // Return specific option if ( isset( $options[$name] ) ) { /******* Addition Begin *******/ // NOTE: Can add other options here... if ( 'posts_for_block1' === $name ) { return change_limit_mobile( $options[$name] ); } /******* Addition End *******/ return $options[$name]; } return $default; } 

где change_limit_mobile() теперь:

 function change_limit_mobile( $value ) { if ( wp_is_mobile() ) { $value = 10; } return $value; }