Собственные меню в wordpress
Особое место на любом сайте занимают меню. В wordpress конечно есть функционал для вывода меню, но такие меню выводятся в виде списка. А вот как сделать меню элементы которого будут распределяться равномерно в определенной области? Очень просто это реализуется с помощью таблицы, в ячейки которой будут записываться ссылки на страницы сайта. Для удобства я написал функцию для вывода меню на базе таблицы:
/** * return list of the pages as table */ function show_main_menu_as_table($menuid = 'tablemenu') { global $wpdb; $query = "SELECT * FROM ".$wpdb->posts." where (post_type ='page') and (post_status='publish') ORDER BY ID ASC"; $result = mysql_query($query); $num_rows = mysql_num_rows($result); $i = 1; $tablemenu = "<table id='{$menuid}'><tr>"; while ($row = mysql_fetch_array($result)) { $title = $row['post_title']; $link = get_page_link($row['ID']); $sel_class = ($row['ID'] == $_GET['page_id']) ? 'sel_link' : 'not_sel_link'; $tablemenu = $tablemenu. "<td><a class='{$sel_class}' href={$link}>$title</a></td>"; $i++; } $tablemenu = $tablemenu. '</tr></table>'; echo $tablemenu; }
Функция принимает один параметр — html атрибут id, а если он не указан — то этому атрибуту присваивается значение tablemenu. Такой подход позволяет стилизовать полученную таблицу на ваше усмотрение. Все что нужно — это скопировать код функции и поместить его в файл functions.php. Для вывода меню в определенном месте сайта вам необходимо вставлять код:
<?php show_main_menu_as_table(); ?>
либо:
<?php show_main_menu_as_table('myid'); ?>
Для того, чтобы создать меню, у которого атрибут id будет myid.
Это все на сегодня. Маленький, но полезный урок для экономии времени тем, кто ищет решения насущных проблем)
P. S. Подход можно модифицировать и использовать в качестве контейнеров для элементов не таблицу, а к примеру наборы блоков div или span. Тут уж вся фантазия вам в руки.