Июня 14, 2010 | by Макс | Уже давно хотел…
июня 14, 2010 | by Макс | Уже давно хотел попробовать сделать на Wordpress контентный проект, ведь этот движок очень неплох с точки зрения поисковой оптимизации, к тому же знаком лично мне, ведь я уже поднял и поддерживаю на нем несколько блогов. Сегодня хочу рассказать именно об этом. Чуть меньше года назад зарегил домен для контентного сайта, затем установил WordPress и бесплатную темку оформления, которая мне тогда приглянулась достаточно приличным, и в то же время, скромным внешним видом. Ни шатко, ни валко, написал несколько страничек, создал примитивную структуру и стал ждать… Для себя вопрос иерархии решил так – новости сайта, сериала и т. д. пусть будут записями блога, а странички актеров и персонажей – соответственно, статичными страницами. После того, как на сайте появились первые посетители, вплотную встал вопрос о том, что нужна нормальная структура, ведь Вордпресс не создает категории для статичных страниц, поэтому страницы с героями сериала, актерами, и т. д., идут вперемешку. Выход, конечно, есть – вложенные страницы. Например, создаем страничку “Персонажи” и подчиняем все странички ей, делаем ее родительской страницей всех этих страниц. С тем, чтобы отсортировать станицы по уровню вложенности я разобрался очень и очень быстро – дизайн сайта подразумевает вертикальное и горизонтальное меню, причем горизонтальное, как вы понимаете, гораздо более ограничено по месту… Поэтому в горизонтальном меню я оставил только страницы первого уровня вложенности, а в вертикальном меню в сайдбаре я вывел все страницы сайта в виде дерева.
Конечно, без проблем не обошлось – пришлось основательно погуглить, чтобы правильно задать последовательность отображения страниц в этом меню. Таким образом, основательной проблемой для меня остались только сами страницы, являющиеся родителями множества других страниц – ведь на них нужно бы перечислить все статьи в этой категории, то есть все подчиненные этой странице страницы. До недавнего времени все находилось в подвешенном состоянии, однако сегодня нашлось немного времени погуглить на эту тему, и я нашел решение. Решение заключается в том, что нужно покопаться в файлах шаблона темы. Скомбинировав парочку удачных решений, получил вот что: В папке темы создал файл navy. php, содержащий следующую запись:
- global $id; wp_list_pages(“title_li=&child_of=$id&show_date=modified&date_format=$date_format”); ?>
Этот код (собстна wp_list_pages с нужными аргументами) отвечает за вывод страниц, являющихся детьми текущей страницы, страниц, для которых текущая страница является родительской. Однако, от того, что я создал файл navy. php, абсолютно ничего не изменилось – его еще нужно вставить в нужное место и в нужный файл… Нет ничего проще – идем в файл page. php и в нужном месте (можно экспериментировать, хотя, как мне кажется, там все и так достаточно понятно и наглядно) вставляем следующий код: if (is_page(array (5,7,133))) { // looking for page 5, 7, 133 include(TEMPLATEPATH. ‘/navy. php’); } ?> где (array (5,7,133) – массив, в котором перечислены ID всех страниц, на которых нужно выводить список вложенных страниц. Таким образом я перестраховался в том плане, что, возможно, будут страницы, имеющие другую логику вложения, и для них выводить это все не нужно. Вот и все танцы с бубном, тем, у кого возникнет желание повторить это, думаю, проблем не возникнет. Если что-то непонятно – спрашивайте, отвечу по мере сил. h++p://yakov. name/2009/03/21/kak-sdelat-vyvod-detej-stranicy/ Теги: WordPress