18.02.2010

WordPress страницы

Здравствуйте, уважаемые посетители моего блога CrazyLog.co.ua. WordPress имеет множество функций для работы со страницами, большинство из которых ориентированы на работу со списками, т.е. UL, LI и т.д. С учетом CSS-правил, получить нужный результат достаточно просто. Однако, мне захотелось получить обычные ссылки с указанным «разделителем». При этом, вариант парсинга HTML-кода мне не понравился и я решил капнуть глубже.

WordPress страницы или как сделать своё меню В своем варианте я использую WordPress функцию get_pages(), позволяющую получить список страниц в виде объектно-ориентированного массива данных. Для того же чтобы определить «текущую» страницу, не особо парясь, решил использовать WordPress функцию is_pages(), передавая ей значение уникального идентификатора страницы (ID). Остальное, думаю, и так всё будет понятно. А вот и сам PHP-код моей функции по созданию своего меню из списка страниц:

function wp_my_pages($sep=' | ') {   $output = array();   $output[] = '<a'.( is_home() ? ' class="current_page_item"' : '' ).' href="'.get_option('home').'/">Home</a>';   $pages = get_pages('sort_column=menu_order&parent=0');   if ( $pages ) {
    foreach ( $pages as $page ) {       $output[] = '<a'.( is_page($page->ID) ? ' class="current_page_item"' : '' ).' href="'.get_page_link($page->ID).'">'.$page->post_title.'</a>';     }   }
  return implode($sep, $output);
}

Обратите внимание, что помимо списка страниц, в начале массива, идет ссылка на главную страницу (Home). Как вы видите, функция получилось достаточно простая и практичная. Возможно, есть нюансы с многоуровневыми страницами, в такие дебри я лезть не захотел. Зато, разобравшись с этим простеньким на вид примером, легко дорабатывать меню до нужной кондиции. Надеюсь, данная заметка будет вам полезна. На этом все и спасибо за внимание.

Источник: http://crazylog.co.ua/archives/wp-my-pages/

Комментариев нет: