Здесь публикуются только готовые рецепты, описания и т.п. по плагинам. За темы, вроде «помогите настроить», «где найти», «ищу» и аналогичные – вечный бан.
Здесь публикуются только готовые рецепты, описания и т.п. по плагинам. За темы, вроде «помогите настроить», «где найти», «ищу» и аналогичные – вечный бан.
С плагинами для авторов мне не приходилось работать, поэтому прошу помощи. Поделитесь своим опытом их использования.
Нужно:
1. Плагин, который добавляет в профиль автора дополнительные (произвольные) поля.
2. Фото/аватара автора. Каким-то образом нужно её загрузить и потом отображать.
3. Уведомление для админа, что можно модерировать/публиковать запись.
4. Какая-то рассылка для всех авторов.
Есть такие?
Проблемы с кодировками на хостингах
Ко мне очень часто обращаются по поводу проблем с кодировками на наших хостингах. Поэтому я решил, собрать всё воедино. 🙂
На большинстве русских хостингах, включая и Мастерхост, стоит кодировка по-умолчанию cp-1251 (windows-1251). По этой причине все соединения с БД инициируются именно в этой кодировке. Для того, чтобы кодировка была, как и положено в utf-8, необходимо при создании соединения с базой данных послать её специальный запрос, указывающий, что ваш блог работает utf-8.
В WordPress’е (начиная с 2.2) можно указать значение DB_CHARSET, которое переводит соединение в utf-8. Но для наших хостингов этого мало, поскольку нужно выполнять еще одну команду (COLLATE), которая переводит и внутреннее хранение данных в utf-8.
Так вот. Возможность использования COLLATE существует только в моей сборке, поскольку во всех остальных, включая и официальную, хоть и введен параметр DB_COLLATE, но реально нигде не используется. Это просто заготовка на будущее. Поскольку я постоянно сталкиваюсь "особенностями" наших хостингов, и знаю как криво настроены кодировки, то решил реализовать сразу правильное решение.
Больше всего проблем возникает со сборкой от mywordpress.ru, поскольку когда-то Антон решил за всех пользователей, что они должны работать в utf-8. Он жестко прописал в WordPress команду перевода в utf-8, хотя реально базы продолжали работать в cp-1251. В итоге произошло достаточно странные метаморфозы.
Изначально база на хостинге работала в cp-1251, то есть кодировки по умолчанию. Данные же из блогов на сборке от mywordpress.ru поступали в utf-8. И хотя отображение было корректно, но только по той причине, что начиная с MySQL 4.1 внутреннее хранение было в юникоде. Если же база не могла "переварить" юникод, то это отображалось как выпадение символов "ш" и "и" (иногда и другие). Это означает, что многобайтную кодировку (utf-8) пытались всунуть в однобайтную (cp-1251).
Но через какое-то время, на на наших хостингах массово стали переходить на новые версии MySQL (5.0). Админы, как и положенно взяли и перевели данные, которые теоретически дожны были быть в cp-1251, в utf-8. Получилось двойное преобразование.
Если у вас такой случай, то при просмотре данных в phpMyAdmin вы увидите либо разные кодировки сравнения (сопоставления) в таблицах WordPress, либо вообще крокозяблы в данных, хотя кодировка и будет указана верной.
Дополнительно это выражается еще и в том, что у вас неверно работает поиск. Например он дожен быть регистронезависимым. Также бывают проблемы с сортировкой по алфавиту. К сожалению, побороть это недуг средствами WordPress невозможно.
Пути решения.
В моей сборке, если вы устанавливаете блог с нуля, то берите utf-8. Это почти полная гарантия, что данные будут храниться в MySQL верно. Причем и для новых таблиц! Например тех, которые создают плагины. То есть вы сможете делать корректный бэкап, сортировку и поиск.
Если вы обновляете блог, то можно попробовать обновится до моей сборки WordPress 2.2 и выставить правильные DB_CHARSET и DB_COLLATE (все в новом файле wp-config.php). Например у меня для некоторых хостингов получалось добиться нормальной работы при cp1251 и cp1251_general_ci, хотя блог и база работали в utf-8.
Для самых тяжелых случаев, включайте перекодировщик.
Самый кардинальный способ решения – это полностью переделать базу данных. То есть взять дамп всех таблиц, вручную их переконвертировать, прописать верные COLLATE и обратно загрузить. Тогда у вас будет все корректно работать и в блоге, и в phpMyAdmin.
Сразу хочу предупредить тех, кто решит изменить кодировку таблиц в phpMyAdmin – с большой долей вероятности вы просто потеряете данные. То есть, если вы рискнете на эту операцию, в обязательном порядке делайте бэкап.
Дополнительный момент следует учитывать и в том, что на наших хостингах очень любят принудительно посылать браузеру кодировку windows-1251. В некоторых хостингах есть специальная опция в настройках. Но для других существует только единственное решение – принудительно прописать кодировку в .htaccess. Причем будьте готовы к тому, что это придется сделать в каждом каталоге. Таких кривых хостингов, типа мажордомо с петерхостом, как грязи.
Для этого попробуйте прописать в .htaccess по очереди такие строки:
AddDefaultCharset UTF-8
CharsetDisable On
CharsetDefault UTF-8
CharsetSourceEnc UTF-8
CharsetRecodeMultipartForms off
Учтите, что какие-то из них могут не сработать, а какие-то вызвать ошибку доступа (ERROR).
Еще информация о кодировках здесь: http://forum.maxsite.org/viewtopic.php?id=598
Ошибка «Cannot modify header information ….
Если у вас появляется сообщение об ошибке вида:
Warning: Cannot modify header information – headers already sent by (output started at…
то это означает, что вы неверно сохранили файл (имя файла указывается в первом Warning). На 99,99% вы сохранили файл в кодировке UTF-8 с сигнатурой (BOM).
Обратите внимание, что в логах ошибки присутствует полное её описание: имя файла и номер строчки. Например:
Warning: Cannot modify header information – headers already sent by (output started at /hosting/www/dbla-bla-bla/wp-config.php:1) in bla-bla-bla
Сие означает, что о ошибка в файле wp-config.php 1-й строке/символе. Поскольку сигнатура BOOM не видна обычными текстовыми редакторами, то можно выглядеть все глаза, но так и не увидеть этот «первый символ».
Ваши действия:
Если после этого опять видим ошибку, ещё раз перечитываем этот текст и выполняем инструкцию до полного просветления.
Как красиво оформить картинку (фото)
Здесь только дам ссылку на специальный выпуск рассылки, посвященный оформлению картинок:
http://maxsite.org/ras17
Сделайте ваш блог красивым!
Начальные сведения по HTML (ссылки)
Дам несколько ссылок на свою рассылку, где вы найдете начальные сведения по HTML:
1. Начало – http://maxsite.org/ras05
2. Оформление текстов – http://maxsite.org/ras06
3. Фоны, блоки – http://maxsite.org/ras07
4. Картинки – http://maxsite.org/ras08
Вообще это один блок из нескольких выходов, поэтому читать можно последовательно 🙂
ВАЖНО! Прежде чем создать новую тему…
1. Когда вы создаете новую тему, убедитесь, что она еще не обсуждалась. Для этого вы можете пролистать форум (включая и раздел FAQ) или воспользоваться поиском.
2. Создавая новую тему, постарайтесь дать информативный заголовок. Не нужно писать «У меня проблема с плагином» – вместо этого напишите «Плагин ХХХ – не работает YYY». Такое описание позволит гораздо легче найти вашу тему будущим читателям форума.
3. В своем сообщении указывайте:
Эти данные помогут специалистам дать более точный ответ на ваш вопрос.
4. Потратьте некоторое время и правильно сформулируйте свой вопрос. Напишите что конкретно не работает и в каких случаях. Не дожидайтесь, пока вам будут задавать наводящие вопросы, сделайте это сразу. Если вам нужен квалифицированный ответ, то и вопрос должен быть задан правильно.
5. Первый признак того, что вы спамер – активная ссылка в вашем сообщении. Админы форума не будут разбираться, указываете ли вы ссылку с чистыми намерениями или пытаетесь прорекламировать свой сайт. Такие сообщения и темы будут удаляться целиком, автор получает бан.
6. За UP – бан.
7. За множественные темы – бан.
8. Нарушение общих правил – бан.
Писать модераторам с просьбой восстановить доступ беcсмысленно.
Прежде чем создать новую тему…
Этот форум мы используем только для готовых решений. Не нужно здесь задавать вопросы – сделайте это в соседнем форуме «WordPress».
ps Все внетемные темы будут удаляться без возможности восстановления. При повторах – автору вечный бан.
Оформление текстов и картинок с помощью HTML
К сожалению полный курс HTML потянет на отдельный сайт :), поэтому я просто приведу ссылки на два выпуска моей рассылки, где я привожу примеры работы с HTML. Рассчитаны они на новичков.
Основы HTML. Оформление текстов
Оформление текстов с помощью HTML
Оформление изображений
Создание анонса (more и noteaser)
Для того, чтобы разбить запись на две части, где первая будет отображаться только на главной станице (анонс, цитата), в тексте достаточно указать
<!--more-->
На главной странице будет отображен текст до этой конструкции.
Если вы хотите получить полный аналог поля «Цитата» (в админ-панели), то нужно указать:
<!--more-->
<!--noteaser-->
В этом случае на главной странице будет отображен текст до этой конструкции, а на странице записи его уже не будет.
http://maxsite.org/delenie-stranits-v-wordpresse
Для того, чтобы разбить запись на несколько страниц, в нужном месте текста достаточно указать:
<!--nextpage-->
Если после указания этого кода, WordPress не выводит ссылки на следующие части, то проверьте в шаблоне (index.php, single.php или page.php) наличие функции wp_link_pages(). Её нужно указать после the_content().
http://trampampam.ru/blog/other-pages/
http://maxsite.org/delenie-stranits-v-wordpresse
Как добавить счетчик, рекламу (или любой другой html-код)
Для этого вы можете использовать плагин «Ушки»: http://maxsite.org/novyiy-plagin-ushki
В нужном месте, например в footer.php или sidebar.php, нужно прописать код:
<?php
if (function_exists('show_ushka')) show_ushka('counters');
?>
А в настройках создать ушку «counters» и добавить в неё свой html-код.
Вывод записей определенной рубрики в любом месте
Иногда нужно вывести записи вне основного цикла theeLoop. Обычно это делается с помощью query_posts. Проблема в том, что WordPress использует глобальные переменные, и после использования этой функции, условия query_posts станут глобальными.
Чтобы этого избежать, нужно использовать функцию get_posts. Например, мы хотим вывести в сайдбаре список последних записей в рубрике новости (id=1):
<h2 class="pages_search">Новости</h2>
<ul class="is_kat">
<?php
$posts_new = get_posts('category=1&numberposts=3');
foreach ($posts_new as $post_new) :
echo '<li class="news_item"><a href="';
echo get_permalink($post_new->ID);
echo '">';
echo mysql2date('j.m.Y', $post_new->post_date);
echo ' - ';
echo $post_new->post_title;
echo '</a></li>';
endforeach;
?>
</ul>
То есть мы получаем все записи с нужным нам условием get_posts(‘category=1&numberposts=3’) в объект $posts_new. Далее, мы просто обходим его в цикле и выводим нужные нам записи.
Поощрения активным участникам форума
В последнее время мне очень хочется, чтобы в сутках было ну хотя бы 25, а лучше 26, часов :). Иногда такая загрузка, что даже на форум не успеваю заглянуть. 🙁 Нужно быть благодарным тем, кто активно участвует в работе форума, и я решил сделать небольшой презент всем активным участникам.
За каждые 50 сообщений на форуме я вышлю ключ (= 1 url блога*) к своему блог-клиенту для WordPress (http://maxsite.org/wp-client).
Так что, если у вас уже более 50 сообщений, пишите мне на max-3000{!}list.ru. В письме укажите адрес блога. Я вышлю ключ, ссылки на скачивание и пароль архива.
(*Прим. WordPress 2.1.х программа пока не поддерживает)
ps Ну что делаем отдельный форум «FAQ по WordPress»?
Предлагайте темы для рассылки!
Если кто не знает, то я веду рассылку по WordPress. Тему выпуска я придумываю сам: иногда на форуме «подсмотрю» вопрос, иногда клиенты задают «задачки» :).
Если у вас есть какие-либо идеи или пожелания по рассылке, прошу высказываться в этой теме.