Как сделать вывод детей страницы в теле страницы

Как сделать вывод детей страницы в теле страницы

Уже давно хотел попробовать сделать на WordPress контентный проект, ведь этот движок очень неплох с точки зрения поисковой оптимизации, к тому же знаком лично мне, ведь я уже поднял и поддерживаю на нем несколько блогов. Сегодня хочу рассказать именно об этом.

Чуть меньше года назад зарегил домен для контентного сайта, затем установил WordPress и бесплатную темку оформления, которая мне тогда приглянулась достаточно приличным, и в то же время, скромным внешним видом. Ни шатко, ни валко, написал несколько страничек, создал примитивную структуру и стал ждать… Для себя вопрос иерархии решил так – новости сайта, сериала и т.д. пусть будут записями блога, а странички актеров и персонажей – соответственно, статичными страницами.

После того, как на сайте появились первые посетители, вплотную встал вопрос о том, что нужна нормальная структура, ведь Вордпресс не создает категории для статичных страниц, поэтому страницы с героями сериала, актерами, и т.д., идут вперемешку. Выход, конечно, есть – вложенные страницы. Например, создаем страничку “Персонажи” и подчиняем все странички ей, делаем ее родительской страницей всех этих страниц.

С тем, чтобы отсортировать станицы по уровню вложенности я разобрался очень и очень быстро – дизайн сайта подразумевает вертикальное и горизонтальное меню, причем горизонтальное, как вы понимаете, гораздо более ограничено по месту… Поэтому в горизонтальном меню я оставил только страницы первого уровня вложенности, а в вертикальном меню в сайдбаре я вывел все страницы сайта в виде дерева. Конечно, без проблем не обошлось – пришлось основательно погуглить, чтобы правильно задать последовательность отображения страниц в этом меню.

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

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

1. в папке темы создал файл navy.php , содержащий следующую запись:

<ul>
<?php
global $id;
wp_list_pages(“title_li=&child_of=$id&show_date=modified
&date_format=$date_format”); ?>
</ul>

Этот код (собстна wp_list_pages с нужными аргументами) отвечает за вывод страниц, являющихся детьми текущей страницы, страниц, для которых текущая страница является родительской.

Однако, от того, что я создал файл navy.php, абсолютно ничего не изменилось – его еще нужно вставить в нужное место и в нужный файл… Нет ничего проще – идем в файл page.php и в нужном месте (можно экспериментировать, хотя, как мне кажется, там все и так достаточно понятно и наглядно) вставляем следующий код:

<?php
if (is_page(array (5,7,133))) {
// looking for page 5, 7, 133
include(TEMPLATEPATH . ‘/navy.php’);
}
?>

где (array (5,7,133) – массив, в котором перечислены ID всех страниц, на которых нужно выводить список вложенных страниц. Таким образом я перестраховался в том плане, что, возможно, будут страницы, имеющие другую логику вложения, и для них выводить это все не нужно. Вот и все танцы с бубном, тем, у кого возникнет желание повторить это, думаю, проблем не возникнет. Если что-то непонятно – спрашивайте, отвечу по мере сил.

Постовой:
В отличие от остального китайского ширпотреба китайская косметика еще не так известна у нас… Что ж, как говорится, поживем – увидим…
Если вам нужна всенаправленная антенна wifi или другое wifi оборудование, посетите интернет-магазин technotrade.com.ua – вы будете приятно удивлены!
Киноблоги, которые можно найти в поиске по запросам “скачать фильм, новинки фильмов” – прекрасный способ ориентироваться в новостях кино и телевидения.