Jan
17
|
Немного про сайты на Wordpress
|
Волей случая мне пришлось познакомиться с Wordpress, когда я начал вести этот блог.
Сначала он мне показался «китайской грамотой» (в частности из-за своего функционального кода), но потом я привык, разобрался, как кастомизировать (натягивать шкуры) на Wordpress.
В результате чего появились блоги: freeprogs.kiev.ua, 38gadgets.ru, freelancehack.ru и скоро открывающийся fuck-office.com.
Как и ожидалось, ничего сложного в натягивании дизайна на данный блогодвижок — нет.
И вот недавно встала более сложная задача — сделать сайт-визитку на Wordpress. В принципе ничего сложного — набор статических страниц + новости.
Сделать главной страницей какую-либо из страниц можно прямо в админке Wordpress. Новости очень просто делаются через рубрику «новости», тоесть заметками в данную рубрику. C контентной областью тоже вроде проблем нет, поэтому я взялся за задачу.
Естественно я нашел мануал и быстренько решил вывод новостей с помощью кода:
<?php query_posts(«category_name=news&showposts=5&order=desc»); ?>
Ха, подумал я — все так просто. И тут, по классике жанра, начались «грабли».
Не тут-то было. Открыл я главную страницу и увидел, что контентной области текста-то нет..Точнее он был, но там отображались новости, а не контент страницы.
В чем же причина? А причина в том, что в Wordpress есть функция the_post(), которая присутствует в шаблонах для вывода заметок и статических страниц, которая и использует query_posts. А эта функция построена по тому принципу, что вызывать ее можно сколько угодно раз, но результат она возвращает тот, что получен в самый первый раз.
Я начал искать решение. Оказалось, что если после вывода новостей написать еще раз <?php query_posts(); ?>, но уже без аргументов, то данные выводятся, но только данные главной страницы, причем на любых других страницах. Естественно меня это не устраивало.
Первая мысль, которая мне пришла — поискать в мануале, как обнулять действие данной функции. Погуглив минут 20 и перерыв ман, я нашел только слабое упоминание (может конечно я плохо искал?), что для таких выводов (несколько раз на одной странице) нужно писать отдельную функцию, которая будет использовать WP_Query.
Так, как писать свою функцию мне не сильно хотелось как-то, да и не получилось: постоянно писало, что моя функция не найдена при вызове ее (видно где-то надо ее еще «регистрировать») — я решил методом грубой силы искать выход.
Я открыл свой шелл на сервере, где находится мой блог и с помощь mc задал поиск всех файлов, где встречается функция query_posts. Таких оказалось аж два: query.php и widgets.php в директории wp-includes (а именно там я и искал — где им еще быть-то?). Очевидно, что это не файл виджетов, поэтому я открыл файл query.php и начал его изучать.
Как ни странно — с самого верху была нужная мне функция — wp_reset_query(), которой я успешно и воспользовался. И все сразу же получилось
Вообще интересно выходит - либо никто не делал ничего подобного до меня (в чем я дико сомневаюсь), либо я не правильно давал запросы к поисковику (что скорее всего). А как надо было спрашивать — до сих пор не понятно.
Таким образом строить довольно простые сайты-визитки на Wordpress — можно. Но нужно знать особенности данного движка, которых, как мне кажется — очень даже много.
Возможно кому-то пригодиться мой опыт и он не будет также, как я убивать время на поиски нужного решения
18.01.2009 в 02:17
Спасибо. Полезно было и вовремя прочитано.
18.01.2009 в 14:09
Хм, погуглив по терміну “building personal web-site on WordPress” знайшов багато інформації “для чайників” (я чайник в HTML/PHP)
Скажімо тут
http://www.build-your-website.co.uk/build-websites-wordpress/index.htm
18.01.2009 в 15:13
А результат поглядеть? Есть задумки для себя, посмотреть бы на реализацию получившегося.
18.01.2009 в 15:20
Да собственно сайт не хитрый. Пока лежит тут – http://dveri.eu
19.01.2009 в 08:03
JabbyPanda:
Там нет информации о которой я рассказал в заметке. Речь же о специфической задаче.
19.01.2009 в 10:06
Недавно столкнулся с подобной проблемой, но решил ее переходом на другой двиг =)
Спасибо за заметку, познавательно.
19.01.2009 в 21:09
Ух ты! Не знал. Очень полезно.
Серьезно так
22.01.2009 в 21:15
Ничего себе как вы мучались – нам программистам такие мучения не виданы
23.01.2009 в 01:59
Ты о чем, Артем?:)
23.01.2009 в 02:42
да, уж… хорошо хоть для этой задачи не пришлось переписывать исходники вордпреса…
По-моему о вордпресе и для него столько написано что придумать с ним что-то такое чего еще не делали уже просто нереально… так что на все можно найти ответ – например для этой задачи по запросу “wordpress cms”.
И кстати раз уже зашла речь о движке – советую его постоянно обновлять до текущей версии… потому что ломают его тоже массово и при том автоматически… а потом будет очень удивительно откуда в футере появилось загадочное слово eval и почему гугл в футере видит 100 ссылок со словом на ‘v’
23.01.2009 в 09:14
Ну просто когда программируешь уже на PHP больше 5 лет, то это все решается проще Нам найти где определена функция – дело одного клика.
Вот честно сказать 3 раза мои клиенты ловили eval код (один раз в WP) и два раза из были виноваты не скрипты, а трояны на компьютерах.
23.01.2009 в 10:25
Нет, конечно же можно создать новый проджект в IDE и тогда вопрос решается в один клик. Но для того, чтобы его создать – нужно было бы сначала все скачать с фтп (проект не того уровня, чтобы разрабатывать локально или через SVN), что тоже не так быстро, как хотелось бы, особенно ввиду того, что размер wordpress не уменьшается с версиями (там была последняя).
Таким образом – путем, которым я пошел – было просто быстрее, так как поиск мне указал нужный файл за 1 минуту, а за это время я не успел бы развернуть у себя даже локальную версию Wordpress.
23.01.2009 в 10:53
А, ну если разработка не локально велась, тогда конечно другой вопрос.
23.01.2009 в 11:00
Конечно не локально, не тот проект Я просто сразу с шелла на сервере скачал архив вордпресса, разархивировал и начал работу..На локальном ничего не держал
Поэтому данный вариант оправдан. На самом деле любой уважающий себя программист должен уметь работать с консолью и знать, как что-то найти в куче файликов, не просматривая каждый. Всегда данное знание пригодиться. Вот и у меня пригодилось
01.02.2009 в 01:53
Станислав, привет! Може в тему а может нет — но спасибо за становление моего выше упомянутого блога fuck-office ура!
01.02.2009 в 15:53
Леша:
Всегда пожалуйста
02.02.2009 в 14:33
Спасибо, может пригодится. Интересно есть ли какие-то простые CMS для подобных сайтов-визиток. WP подходит, конечно, но избыточен очень уж для подобного проекта – в том смысле, что для решения задачи используется там наверное 10-20% всей мощности.
Станислав, может посоветуешь какую-то ЦМС для проектов-визиток, где новости – это предел мечтаний и есть удобная работа с шаблонами.
fuck-office, регистрироваться чтобы оставить комментарий – это извращение =\ (не всегда есть время)
02.02.2009 в 16:46
Tod:
Честно говоря не знаю таких. У нас для этого есть программист на Joomla (хотя она тоже перегружена для простых сайтов и избыточна).
12.02.2009 в 13:55
Записки monkey-кодера, бгыгыгы =)
18.02.2009 в 00:48
мда..
05.06.2009 в 13:44
doctorstal
неадекват?
по сабжу… сайты-визитки строить на WP можно, но я бы не советовал, вп стал очень прожорлив… легкче на хтмл сверстать пару-тройку страничек
ну а если нужно больше, то MaxSiteCMS
06.03.2010 в 10:23
А собственно зачем ты полез в код?
06.03.2010 в 11:54
Заводской раб:
А какие есть еще варианты?