Архив рубрики: Wordpress

Ошибка в WordPress: Warning: Cannot modify header information

Как всегда неожиданно на одном из сайтов, созданных на базе WordPress всплыла ошибка:

Warning: Cannot modify header information — headers already sent by (output started at /servername/public_html/wp-config.php:1) in /servername/public_html/wp-includes/pluggable.php on line 1207

Ковыряние в Гугле привело к следующему решению: проблема лежит в ошибке кодировке файла. Ну бывает такое — правил файл-правил, а потом бах, и сохранил либо не в UTF-8. Наиболее правильным (для начала) будет открыть Notepad++ и открыв искомый файл (перед этим его нужно слить на локальный компьютер с хостинга) пересохранить в UTF-8 без BOM. В Notepad++ это делается следующим образом: верхнее меню — Кодировки — Преобразовать в UTF-8 без BOM, после чего сохранить файл.
notepad-bom

Закачиваем файл на сервер, и (скорее всего) — ошибка пропадает.

Как всегда — в случае возникновения вопросов — пожалуйста, пишите на почту oleksiy@lavrynenko.com

О школе и родительских собраниях

Как-то быстро пролетело лето, и (что ожидаемо) — начался учебный год. Дочь перешла в очередной класс, а я все так же пошел на очередное родительское собрание. Бла-бла-бла… 2 часа перекатывания из пустого в порожнее заставили меня вначале озвучить идею создания некоего ресурса виртуального родительского собрания (21-й век, экономия времени и прочее), а потом — после того, как родители эту идею поддержали — задуматься над ее реализацией.

После размышлений был составлен начальный список требований к ресурсу:
1. Закрытость — т.е. никто из посторонних не имеет доступа к размещенным материалам
2. Разделенность тематик обсуждения — т.е. есть тема, под ней формируется ветка обсуждения
3. Открытость для участников — комментарии, система лайков к комментариям, голосовалки
4. Файловый архив

Великолепным решением лично для меня показался Bitrix24. Но — он бесплатен только до 12 участников, а учитывая, что в классе 37 учеников — увы — не наш вариант.

Решил использовать WordPress, на базе которого и развернул сайт. В качестве доменного имени использовал бесплатный домен на dot.tk, сам сайт находится на хостинге GoDaddy. К настоящему моменту ресурс уже в рабочем режиме, планирую представить его в свободный доступ (может кому пригодится) через некоторое время — полностью настроенным и отлаженным.

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

В качестве файлохранилища используется Яндекс-диск, он-лайновые документы с ограниченными правами редактирования расположены в Гугл-доках.

Больше подробностей — позже 🙂 И как всегда — если у вас есть вопросы — задавайте !

WordPress — ограничение доступа к странице

Столкнулся только что с задачей ограничения доступа к определенной странице на сайте, созданном на WordPress. Т.е. задача вроде бы простая: если пользователь не прошел авторизацию — получить доступ к информации на определенной странице он не может. Но по факту без ковыряния в коде реализовать ее не так уж и просто.

Однако — это Worpdress! Несмотря на открытость кода платформа пользуется заслуженной популярностью — ниже представлен срез популярности CMS-систем в Рунете, на основании которого лидерство WordPress вполне очевидно:

Популярность CMS-систем за 2-й квартал 2015 года

Именно благодаря открытости системы с помощью плагинов у неискушенных в кодинге пользователей появляется возможность кастомизировать движок по собственному разумению. Решить можно практически любую задачу и задача, о которой я говорил выше — ограничение доступа к странице — отлично решилась с помощью плагина WP-Members.

Процесс установки плагина стандартен:
1. Загружаем плагин к себе на жесткий диск
2. Закачиваем через FTP на сервер в папку /wp-content/plugins/
3. Активируем плагин в панели управления.

плагин WP-MembersЛибо — заходим на ссылку http://вашсайт/wp-admin/plugin-install.php и вводим в строку поиска название искомого плагина: WP-Members, после чего устанавливаем и активируем его.

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

wp-members

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

WordPress — отображение виджета на определенной странице

Только что столкнулся с задачей организации вывода содержимого виджета в движке WordPress на определенной странице. В связи с тем, что время — вещь весьма ограниченная, разбираться в кодах не будем — просто рассмотрим плагин Widget Logic, скачать который можно этой ссылке.

Лично для меня плюсом данного плагина в помощи организации отображение виджета на определенной странице явилась простота организации модели поведения вывода — с помощью указаний Conditional Tags (подробнее об этом вы сможете узнать тут) в опциях вывода виджета.

В качестве параметров для примера WordPress на определенной странице можно отметить такие:

  • Отображать только на главной странице: is_home()
  • Отображать только на страницах постов: is_single()
  • Отображать только на страницах: is_page()
  • Отображать только на страницах архива (категорий, тэгов и т.д.): is_archive()
  • Отображать на страницах результата поиска: is_search()
  • Отображать на всех страницах, кроме главной: !is_home()
  • Отображать на странице “Blog” или “Contact” : is_page(‘blog’) || is_page(‘contact’)

В случае возникновения вопросов не стесняйтесь задавать их на почту oleksiy@lavrynenko.com