Создайте ползунок диапазона для изменения размера шрифта в зависимости от разных размеров экранов в API настраивателя WordPress.

Вопрос или проблема

Я пытался создать настройщик темы для изменения размера шрифта. Для этого я создал настройки и элементы управления. Но проблема в том, что я не могу добиться того, как показано на изображении. Я использовал тип ввода “диапазон”, чтобы настроить значение, и оно обновляется в зависимости от увеличенного или уменьшенного значения. Я хочу иметь ползунок с полем, которое указывает значение и может использоваться для изменения значения, вводя значение для каждого размера экрана, такого как настольный компьютер, планшет и мобильный телефон.

Также возможно ли изменить файл CSS с помощью настройщика? Сейчас я просто выводлю встроенный CSS.

введите описание изображения здесь

Код, который я написал:

$wp_customize->add_setting( 'ltr_font-size', [ 
         'default' => '16px'
     ] );
    
    $wp_customize->add_section( 'ltr_section', [
        'title' => __( 'Пользовательские настройки', 'ltr2022' ),
        'priority' => 30    
     ] );

     $wp_customize->add_control( new WP_Customize_Control(
        $wp_customize,
        'ltr_font-setting',
        array(
            'label'          => __( 'размер шрифта', 'latracal' ),
            'section'        => 'ltr_section',
            'settings'       => 'ltr_font-size',
            'type' => 'range',
            'input_attrs' => array(
                'min' => 16,
                'max' => 20,
                // 'step' => 2,
              )
        )
    ) );

вывод встроенного CSS


<?php
function mytheme_customize_css() {
?>
<style type="text/css">
main {

    font-size: <?php echo get_theme_mod('ltr_font-size', '16px');

    ?>px;

}
</style>
<?php
}

Вот что я добился:

введите описание изображения здесь

.

Ответ или решение

Создание ползунка для изменения размера шрифта с учетом различных размеров экранов в API индивидуальной настройки WordPress может показаться сложной задачей, но с правильным подходом это вполне осуществимо. Давайте разберем поэтапно, как можно реализовать такую функциональность.

Шаг 1: Настройка API индивидуальной настройки

Во-первых, вам необходимо настроить API индивидуальной настройки с добавлением нескольких параметров для различных устройств — для настольных ПК, планшетов и мобильных устройств. Для этого мы создадим отдельные настройки и управляющие элементы для каждого устройства:

function my_theme_customizer_register($wp_customize) {
    // Добавляем секцию для настройки шрифта
    $wp_customize->add_section('font_size_section', [
        'title' => __('Font Size', 'yourtheme'),
        'priority' => 30,
    ]);

    // Настройки для различных устройств
    $devices = ['desktop', 'tablet', 'mobile'];
    foreach ($devices as $device) {
        $wp_customize->add_setting("font_size_$device", [
            'default' => '16px',
            'sanitize_callback' => 'sanitize_text_field',
        ]);

        $wp_customize->add_control("font_size_control_$device", [
            'label' => __(("Font Size for " . ucfirst($device)), 'yourtheme'),
            'section' => 'font_size_section',
            'settings' => "font_size_$device",
            'type' => 'range',
            'input_attrs' => [
                'min' => 12,
                'max' => 30,
                'step' => 1,
            ],
        ]);
    }
}
add_action('customize_register', 'my_theme_customizer_register');

Шаг 2: Вывод CSS

Теперь, когда настройки созданы, приступим к выводе CSS, который будет адаптироваться в зависимости от выбранного размера шрифта для каждого устройства. Вместо того чтобы выводить inline CSS, мы можем сгенерировать CSS-правила на лету в нашем файле темы.

function mytheme_customize_css() {
    ?>
    <style type="text/css">
    @media only screen and (min-width: 1025px) {
        body {
            font-size: <?php echo get_theme_mod('font_size_desktop', '16'); ?>px;
        }
    }
    @media only screen and (min-width: 768px) and (max-width: 1024px) {
        body {
            font-size: <?php echo get_theme_mod('font_size_tablet', '14'); ?>px;
        }
    }
    @media only screen and (max-width: 767px) {
        body {
            font-size: <?php echo get_theme_mod('font_size_mobile', '12'); ?>px;
        }
    }
    </style>
    <?php
}
add_action('wp_head', 'mytheme_customize_css');

Шаг 3: Создание пользовательского интерфейса для администратора

Теперь давайте добавим немного JavaScript, чтобы сделать процесс выбора шрифта более удобным. Это добавит ползунок и поле ввода, чтобы менять размер шрифта, а также отобразит текущее значение.

(function($) {
    $(document).ready(function() {
        $('input[type=range]').on('input change', function() {
            var value = $(this).val();
            $(this).next('.font-size-value').text(value + 'px');
        });
    });
})(jQuery);

Заключение

С помощью приведенных выше шагов вы можете разработать полноценное решение для изменения размера шрифта, учитывая разные размеры экранов, в WordPress через API индивидуальной настройки. Это не только повысит удобство для пользователя, но и улучшит внешний вид вашего сайта на разных устройствах.

С точки зрения SEO важно, чтобы ваш контент был доступен и читабелен на всех устройствах, поэтому адаптивные шрифты — это не только вопрос дизайна, но и пользовательского опыта.

Оцените материал
Добавить комментарий

Капча загружается...