Ошибка в фиде WordPress.

Рубрики: Общие советы, Улучшаем свой блог, на WordPress  

Сейчас возился с одним из своих сателлитов и нарвался на неприятную и непонятную ошибку. А еще вспомнил, что совсем забросил блог. Решил совместить два дела и написать решение, т.к. в русско-язычном сегменте интернета ответа не нашел. Да и вообще не нашел, доковырял сам.

Вот что бывает, когда кривые руки делают шаблон для WordPress, при попытке прочитать RSS в Google Chrome (вероятно еще и в FF и Opera – не проверял).

Итак, вот пациент, он же – ошибка:

This page contains the following errors:
error on line 1 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.

Анализ показывает, что такая ошибка появляется, если поставить пробел перед XML-кодом RSS-ленты. О как. Причина появления пробела в следующем: WP всегда вызывает functions.php из каталога шаблона. Вдруг темплейт-мейкер решил как-то преобразовать RSS перед выводом?

Поэтому для решения проблемы и устранения ошибки необходимо привести файл functions.php к такому виду:

<?php

/* здесь какой-то код каких-то подозрительных пользовательских функций */

?>

Непонятно? Поясняю. Сократим запись совсем, уберем весь код и оставим только открывающие и закрывающие теги PHP. Вид должен быть такой: «<php /* some code */ ?>». Если после закрывающего тега или перед открывающим тегом будет хотя бы пробел – все, приехали, появится наша ошибка. Вот такая запись сделает наш RSS-фид не валидным: «<php /* some code */ ?> » (пробел после закрывающего тега).

Ну как, разобрались?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

А меж тем в блоге уже 20 тысяч спамных комментариев. Двадцать. Тысяч. Такой объем разгрести невозможно. И это основная причина, почему писать ничего не хочется – даже если я буду прилежным китайским ребенком, я все равно вряд ли найду отзывы о своих постах в этой горе хлама. Поэтому, наверное, легче уже удалить все полностью, заставив плакать в подушку тех, чьи комментарии умрут вместе со спамом.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Искал книжку про компьютеры для начинающих. Нашел на озоне удивительную вещь, хоть покупай оптом! Описание:

«Если Вы решили купить компьютер и не знаете, с чего начать – эта книга для Вас! Как самостоятельно собрать и настроить ПК? Как записать и просмотреть DVD-диск с любимым фильмом или послушать на компьютере музыку? Как создать и раскрутить сайт в Интернете? Теперь Вы узнаете ответы на эти и многие другие вопросы.  Множество практических примеров, наглядных иллюстраций и пошаговых инструкций сделают Ваше обучение легким и удобным!»

Ну и ну! За 240 рублей теперь можно научиться всему! Начиная от сборки ПК, заканчивая раскруткой сайтов в сети. Ааабалдеть! И казалось бы – чего мы всем тут мучаемся?..

Комментариев: (5)


Что ни загрузка – разная RSS-иконка

Рубрики: Общие советы, на PHP, на WordPress  

Продолжая тему маленьких полезных советов от программиста, хочу рассказать, как сделать, чтобы при каждом обновлении страницы Вашего блога появлялась новая иконка подписки (или шапка, например).

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

rss1.jpg
rss2.jpg
и так далее до rss5.jpg

Читать полностью »

Комментариев: (9)


Прикольные скрывающиеся-открывающиеся блоки

Рубрики: JavaScript, Общие советы, на WordPress  

Постовой: полипропиленовые трубы

Немного поменял дизайн сайта. В частности – слишком много разных ссылок, счетчиков и прочего не нужного в сайдбаре. Одним из способов, которым я скрыл лишнее – это открывающие блоки. Чтобы понять о чем я, посмотрите справа на этом сайте – нажмите на ссылку «…еще» в подписке или «больше!» в счетчиках.

То есть работает так. Предположим, мне нужно скрыть 10 счетчиков, которые на странице смотрятся довольно уродски. Засовываю их в такой вот блок, делаю ссылку. Юзер жмет на ссылку и ему открывается блок, а сама ссылка исчезает. Таким образом можно скрыть что угодно – «лишние» способы подписки (самый популярный RSS, а на остальное подписываются редко), какую-нибудь навязчивую инфу об авторе сайта, рекламные баннеры, категории, что угодно. Как это сделать?

Читать полностью »

Комментариев: (15)


Умный сайт: что мы там последнее читали?.. Закладки на сайте.

Рубрики: Движки, CMS, Общее, Общие советы  

Пришла в голову оригинальная идея. Даже не одна, две пришли. Нигде такого еще не видел. Не буду тянуть кота за и так уже растянутые постоянным упоминанием <подставить слово>, перейду к сути.

1. Читая чужой блог, мы листаем посты, ходим по страницам, по категориям, жмем на теги. Иногда мы проделываем довольно длинный пусть по сайту. И, например, страшно нам блог понравился. На следующий день мы открываем этот же блог и хотим продолжить чтение, но… не помним где мы остановились. Судорожно ищем место, не находим. Читать уже знакомые заголовки, когда ищешь что-то новенькое раздражает неимоверно. Листать страницы по 5 постов на каждой раздражает еще больше (ну почему нельзя было сделать по 20 постов хотя бы?!).

А почему бы автору блога не сделать следующее?

Например, где-то вверху есть галочка «Запомнить, что я читал последним». При нажатии на нее пользователь может покинуть сайт, а при повторном открытии браузера (хоть через год) он попадет на ту самую страницу, которую читал последней.

Девид Блейн, остановись, демон! Как это?! А очень просто. Когда пользователь жмет галочку, то на сайте врубается простой механизм: при переходе на очередную страницу пользователю записывается Cookie с URL или URI этой страницы. Когда пользователь заходит на сайт с другого сайта или из «чистого» браузера, мы проверяем реферер и если пользователь пришел не с нашего сайта, то делаем редирект на последний записанный URL. Конечно значение галочки «Запомнить, что я читал последним» тоже нужно записать в Cookie.

Или даже так: URL сохраняется в Cookie в любом случае, но если галочка не установлена, то редиректа не происходит (для того, чтобы всегда точно знать, что пользователь прочитал последним).

2. Еще более глобальная система закладок. Причем индивидуальная для каждого пользователя и, понятное дело, доступная без регистрации (я вообще регистрации ненавижу).

Скажем, в боковой колонке есть блок под названием «Вот это я читал», а в постах под заголовком есть ссылка «Запомнить этот пост». Когда пользователь жмет на «запомнить», то в блоке появляется ссылка на этот пост. Ну и, скажем, запомнить можно сколько угодно постов.

Реализация тоже простая. Для этого тоже достаточно одной только Cookie. Правда записывать туда придется уже не URI, а ID поста из базы данных, т.к. мы должны иметь возможность отобразить заголовок поста в блоке. В Cookie же можно просто записывать ID через запятую, а при неободимости разбивать строку через «разделитель «запятая»" функцией explode и считывать все, что нам нужно из БД.

Да, почему я не назвал это «Закладками» и «Добавить в закладки». Потому, что, очевидно, пользователи будут путать это с закладками браузера, а нужно сделать так, чтобы даже никаких ассоциаций в эту сторону не появлялось.

Эпилог. Вторая идея – это продолжение первой. И, к сожалению, на мой взгляд она немного сомнительна. Ее можно использовать, например, в инернет-магазинах в качестве функции а-ля «сравнить товары» или «отобрать понравившиеся». Но… Сами понимаете. А вот первая, я считаю, вполне себе идеища и достойна реализации. Она помогает и пользователю и повышает крутость ресурса в глазах пользователя («- Толян, смотри, какая там прикольная фишка!»). Главное, дать пользователю выбор, сохранять или не сохранять страницу последнего посещения.

Комментариев: (9)


Китайская защита сайта от вирусов

Рубрики: Общее, Общие советы, Скрипты PHP  

Не секрет, что иногда сайты заражают вирусом.

Чем-чем? Вирусом. Он находится в iframe, и таким образом не виден посетителю. Но при этом посетитель успешно этот фрейм открывает и вирус хватает.

Как-как? Обычно внизу файла index.php располагается код, что-то вроде <iframe…>. При этом владелец сайта однозначно может сказать, что «ээ, дарагой, такова ранэшэ нэбэло, ээ!»

Как избавиться? Удалить этот код, сменить пароли на FTP (т.к. часто именно их и воруют).

В чем подвох? Подвох в том, что владелец сайта может «до последнего» не видеть вирус. Особенно, если вирус какой-нибудь новый. И даже Касперский не поможет.

В чем заключается моя «защита» и почему она «китайская»? Дело в том, что это скорее не защита, а оповестительная система, отключающая сайта, если вирус там поселился.

Как работает? Очень просто. Из учебника php следует, что закрывающий тег в конце файла можно опустить. То есть код:

<?php

echo «hello»;

тоже считается валидным и нормально работает.

Так вот, берем какой-нибудь WP, стираем в index.php нафиг закрывающий тег PHP (а именно вот этот: ?>). Все!

Чего ж будет-то? Если злоевек зальет Вам на сайт свой злоефрейм, то возникнет ошибка при исполнении этого файла php и сайт не откроется. Чем это важно? Важно тем, что владелец сайта, посещая свой сайт, сразу поймет, что на сайте поселился вирус, а посетители сайта не заразятся вирусом, т.к. сайт отключился.

Комментариев: (15)




dimoning.ru
SEO и программирование.
  • Рубрики:



  • Рассылка:

  • Дополнительно:

  • По месяцам:

  • Счетчики:

    Яндекс цитирования
  • Спонсоры:


  • dimoning.ru © 2008-2011 г.
    Все материалы авторские, но их можно копировать с указанием прямой ссылки на источник.