Nautic pages widget для отбражения страниц
Wordpress удобно использовать как простейшую CMS для создания небольших сайтов типа - “сайт-визитка”. Легкая установка, настройка, а главное это дружественный редактор позволяет администрировать сайт человеку совершенно не знакомому html. Многие подобные сайты включают пару десятков статических страниц и ленту новостей. Ну с новостями тут проблем нет вроде бы, а вот опубликовать 10 и более страниц уже проблема потому, что стандартный виджет страниц всегда выводит все имеющиеся страницы, то есть он не может скрыть иерархию не активных разделов и в результате мы получаем огромный развернутый список который абсолютно не вписывается в общий дизайн. Ну а если число статических страниц более 30 то тут положение просто безвыходное, поэтому, на мой взгляд, многие отказываются от применения страниц в качестве основной структуры сайта. Итак думаю основная идея написания понятна, переходим к полному описанию возможностей виджета. для примера используем такую структуру :
- page-1
- page-1.1
- page-1.2
- page-1.2.1
- page-1.2.2
- page-1.2.3
- page-1.2.4
- page-1.3
- page-1.4
- page-2
- page-3
- page-2.1
- page-2.2
- page-2.3
- page-2.4
- page-4
- Скрывает неактивную иерархию если мы находимся на странице page-1 будет показано один подуровень page-1.1 page-1.2 page-1.3 page-1.4 все элементы первого уровня, а подуровень страницы page-3 не отобразится, также не отобразится и подуровень page-1.2
- Позволяет исключить ненужные страницы для этого надо задать список ID страниц через запятую в настойках виджета 12,23,34
- Задать корневую страницу относительно которой будет отображается меню например если указать ID страницы page-3 то получим список из page-2.1, page-2.2, page-2.3, page-2.4
- Глубина - этот параметр задает уровень начиная с которого будет показываться наше дерево например если глубина = 1 и мы находимся на page-2 виджет вообще не отобразится, даже заголовок, а вот если перейти на page-1 то будет показ только подуровень page-1.1 … page-1.4, и опять же не активное подменю page-1.2.1…page-1.2.4 не отобразится эту опцию удобно использовать при конструировании сложных меню например когда нулевой уровень страниц отображается в шапке горизонтально, а подуровни вертикально сбоку в sidebar
- Опция - показывать один уровень заставить виджет скрыть подменю
- Показывать количество дочерних страниц - понятно
- Show current page as link показывать текущую страницу ввиде ссылки или просто текст заголовка
- этот виджет многоразовый
- CSS класс для каждого пункта и подменю формируется в соответствии со стандартом Wordpress
Хлебные крошки, bread crumbs
Дополнительно к виджету есть 3 функции которые можно использовать непосредственно в шаблоне :
function nautic_pages_path($args) выводит путь по текущим страницам page-1>page-1.2>page-1.2.3 в $args можно задать 2 параметра ’separator’ => ‘>’ - разделитель между страницами и ’show_latest’ => true выводить последнюю страницу или не вывдить
function nautic_pages_next($sortby = ‘post_title’) выводит следующую страницу в текущем уровне.
function nautic_pages_previous($sortby = ‘post_title’) выводит предыдущую страницу в текущем уровне.
! Для next и previous необходимо указать порядок сортировки такой же как в вашем виджете иначе показанные значения будут неверными.
Значения могут быть следующие : post_title, menu_order, ID.
пример использования
if( function_exists( 'nautic_pages_path' ) )
echo nautic_pages_path( array( 'separator' => '>', 'show_latest' => true) );
или
if( function_exists( 'nautic_pages_previous' ) )
echo nautic_pages_previous( $sortby );
Отличный плагин, я в восторге!
— июля 15, 2008 | 11:20 дп
Молодец! И ведь все свои проблемы решил, да? Когда нет готового подходящего решения, его просто нужно сделать самому. Поздравляю! Надеюсь развитие плагина не за горами?
— июля 28, 2008 | 10:37 дп
Задумка супер а вот реализация подкачала.
nautic_pages_path криво работает! Иерархия выводитса отлично а вот ссылки в иерархии одни и теже
Проще говоря если иерархия выглядит (page1 > page2 >page3) то на всех линках выводитса URL страницы на которой ты сейчас находишся. тоесть если ты в page3 то линки на page1 и page2 будут вести на page3.
Фикси плагин поскорее! Он нужне людям :)))
Навсякий случай отписываю где я его проверил
WordPress 2.6 взял с ru.wordpress.org
Ramazaki — июля 29, 2008 | 11:11 дп
Поборол траблу с линками описанную в первом моём комменте
Если кому интересно решение вот:
1. Открываем nautic_pages.php
2. находим function nautic_pages_path
3. находим get_page_link($key) (у меня это 147 строка) и меняем переменную с $key на $ID , должно быть так - get_page_link($ID)
Сохраняем проверям у меня работает надеюсь и у вас тоже
Ramazaki — июля 29, 2008 | 11:44 дп
Да спасибо большое за помощь, как то я пропустил это дело. Нашел и исправил ошибку отображения предыдущей страницы функция nautic_pages_previous(); id страници был неправильный.
Архив перезалил можно качать.
admin — июля 29, 2008 | 7:52 пп
И всё таки отличный плагин!!!
Может его можно както подключить не как виджет а отдельно как функции nautic_pages_path и nautic_pages_previous и прописав в ручную параметры в функцию получить такойже результат как и через виджет. Это единственное чего плагину очень не хватает.
Пробовал разобратса самостоятельно но водки не хватило
Ramazaki — августа 4, 2008 | 7:51 дп
Такую возможность я даже не рассматривал. По быстрому переписать function nautic_pages_print() , а именно она выводит окончательный html, не получится, там все завязанно на получение опций из хранилища даных для плагинов.
получение опций $options = get_option(’nautic_pages’);
и далее использование
if($options[$number]['exclude'])…
$number это номер виджета т.к. их может быть несколько
Вообщем то ничего сложного нет надо написать новую функцию на основе nautic_pages_print($options)
а потом в теле функции заменить $options[$number]['exclude'] на $options['exclude']
по убирать все лишнее и соответственно делать вызов вашей функции с массивом опций.
В следующую версию обязательно включу такую функцию.
admin — августа 4, 2008 | 9:33 пп
ЭЭэм… а как можно сделать такую вот вещь, чтобы у плагина первая ссылка была не активна, тк в моем случае она ведет на фиктивную страницу, которая как бы есть для краисовой навигации, но сама по себе является пустой и ссылок на нее нет. только вот этот плагин их добавляет. А так спасибо, очень пригодился! ))
KK — августа 5, 2008 | 5:26 дп
Не совсем понял что требуется в плагине есть возможность текущую страницу показывать не как ссылку, а как текст.
Если не то что требуется и надо изменить вывод плагина подключите фильтр “wp_list_pages”
типа
function moia_funcia($content){
return “Добавляем чего нибудь”.$content;
}
add_filter(’wp_list_pages’, ‘moia_funcia’);
это куплет можно добавить functions.php в папке текущего шаблона
admin — августа 5, 2008 | 6:49 дп
а как его установить. Я новичок. Подкажите плиз. Ни как не могу разобраться
— августа 27, 2008 | 8:13 дп
Как любой другой плагин-виджет, скопировать файл в папку с плагинами, активировать в админ панели, а затем Дизайн->виджеты мышкой перетащить в нужную панель и настроить если надо.
admin — августа 27, 2008 | 10:31 пп
спасибо, буду пробовать
— августа 28, 2008 | 8:12 дп