Ошибка в фиде 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)


Вырезаем из виджета «meta» ссылки на wordpress.org

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

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

Давненько раздражал меня виджет Meta. Все, кто пользуется платформой WordPress должны были заметить, что при добавлении этого виджета в сайдбар он добавляет не только ссылки «администрирование» и  »выйти», но еще и предательские прямые (т.е. без nofollow-noindex) ссылки на сайт разработчиков платформы. Из-за чего слабые духом и вовсе отказывались от виджетов, делали весь дизайн как статический файл. А ведь виджеты – это действительно удобно.

Сейчас, дети мои, я расскажу, как вырезать ненужное нам барахло из виджетов для WordPress 3.0.4 (впрочем, я почти уверен, что способ подходит и для более старых версий и будет подходить для более новых).

Идем в файл /wp-include/default-widgets.php и ищем в нем строчку 280 (у меня), которая начинается на «class WP_Widget_Meta extends WP_Widget».

И приводим HTML-блок в следующий вид (или любой нужный Вам вид):

<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>

Таким образом мы удалили все ненужные нам ссылки из виджета meta. Возможно, для разных версий будут какие-то отличия, поэтому можете писать в комментариях вопросы с указанием версии WP.

Комментариев: (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)




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



  • Рассылка:

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

  • По месяцам:

  • Счетчики:

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


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