[Помогите] увелиние / уменьшение размера шрифта WP 2.7+

Тема в разделе "Wordpress", создана пользователем Alex KGB, 14 янв 2011.

Статус темы:
Закрыта.
Модераторы: Sorcus
  1. Alex KGB

    Alex KGB

    Регистр.:
    28 сен 2009
    Сообщения:
    402
    Симпатии:
    74
    На различных блогах видел кнопки для изменения размера шрифта статьи (основного текста). Реализованы они по-разному. У одних три буквы А- А А+, у других - кегль 8 10 12 14 16.

    Каким плагином предпочтительно это сделать?
    Один вариант я нашел, но он мне не очень нравится http://ruseller.com/lessons.php?rub=32&id=748

    Версия вордпресса на сайте будет 2.7 или выше.
     
  2. Conwell

    Conwell

    Регистр.:
    23 мар 2009
    Сообщения:
    337
    Симпатии:
    177
    Зачем создавать дополнительную нагрузку на сервер обратывая дополнительные команды в плагине, когда можно сделать вот так вот:
    Использовать переменную которая будет отвечать за размер шрифта,
    1. прописываем проверку на ее наличие в шаблоне в самом начале до вывода doctype
    PHP:
    if(!$_GET['FontSize']){ $FontSize 'font-medium';} else {$FontSize $_GET['FontSize'];}
    2. прописываем класс для body:
    HTML:
    <body class="<?php echo $FontSize;?>">
    3. делаем ссылки для смены класса body
    HTML:
    <ul>
    <li class="smallfont"><a href="?FontSize=font-small" title="Small Font"></a></li>
    <li class="normalfont"><a href="?FontSize=font-medium" title="Normal Font"></a></li>
    <li class="largefont"><a href="?FontSize=font-large" title="Large Font"></a></li>
    </ul>
    все.
    в CSS шаблона прописываем три класса с разными размерами шрифтов
     
  3. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Пожалуй вырву из контекста это и предложу альтернативу на jQuery, которая будет работать на стороне клиента:
    HTML:
    $(document).ready(function(){
       var originalFontSize = $('html').css('font-size');
       $(".resetFont").click(function(){
          $('html').css('font-size', originalFontSize);
       });
       $(".increaseFont").click(function(){
          var currentFontSize = $('html').css('font-size');
          var currentFontSizeNum = parseFloat(currentFontSize, 10);
          var newFontSize = currentFontSizeNum*1.2;
          $('html').css('font-size', newFontSize);
          return false;
       });
       $(".decreaseFont").click(function(){
          var currentFontSize = $('html').css('font-size');
          var currentFontSizeNum = parseFloat(currentFontSize, 10);
          var newFontSize = currentFontSizeNum*0.8;
          $('html').css('font-size', newFontSize);
          return false;
       });
    });
    Нужно прописать только класы для кнопок уменьшения/увеличения. Но есть один серьёзный недостаток - размер текущего шрифта нужно сохранить в cookies и во время обработки (document).ready вытащить размер текста, который использовался раньше.
     
  4. Alex KGB

    Alex KGB

    Регистр.:
    28 сен 2009
    Сообщения:
    402
    Симпатии:
    74
    1. А разве будет что-либо корректно работать в самом верху файла темы header.php перед <!DOCTYPE html PUBLIC ... >, как быть с валидацией ?
    Оно должно быть, наверно таким:

    PHP:
     <?php> if(!$_GET['FontSize']){ $FontSize = 'font-medium';} else {$FontSize = $_GET['FontSize'];} <?>



    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>

    <head ...
    2. Класс body и ссылки прописывать в CSS?
    3. Как прикрутить кнопки для управления к теме?
     
  5. Conwell

    Conwell

    Регистр.:
    23 мар 2009
    Сообщения:
    337
    Симпатии:
    177
    1. При чем тут валидация и обработка файла шаблона PHP? PHP обрабатывается на стороне сервера, дальше отдается только результат. Правильнее будет вот так:
    PHP:
    <?php if(!$_GET['FontSize']){ $FontSize 'font-medium';} else {$FontSize $_GET['FontSize'];} ?><!DOCTYPE ...
    разница в обрамлениях скобками.
    2. именно так.
    3. просто вставить приведенный код куда-то в тело шаблона.
     
Статус темы:
Закрыта.