Nautic pages widget для отбражения страниц

Wordpress удобно использовать как простейшую CMS для создания небольших сайтов типа - “сайт-визитка”. Легкая установка, настройка, а главное это дружественный редактор позволяет администрировать сайт человеку совершенно не знакомому html. Многие подобные сайты включают пару десятков статических страниц и ленту новостей. Ну с новостями тут проблем нет вроде бы, а вот опубликовать 10 и более страниц уже проблема потому, что стандартный виджет страниц всегда выводит все имеющиеся страницы, то есть он не может скрыть иерархию не активных разделов и в результате мы получаем огромный развернутый список который абсолютно не вписывается в общий дизайн. Ну а если число статических страниц более 30 то тут положение просто безвыходное, поэтому, на мой взгляд, многие отказываются от применения страниц в качестве основной структуры сайта. Итак думаю основная идея написания понятна, переходим к полному описанию возможностей виджета. для примера используем такую структуру :

  1. page-1
    1. page-1.1
    2. page-1.2
      1. page-1.2.1
      2. page-1.2.2
      3. page-1.2.3
      4. page-1.2.4
    3. page-1.3
    4. page-1.4
  2. page-2
  3. page-3
    1. page-2.1
    2. page-2.2
    3. page-2.3
    4. page-2.4
  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 );

пример рабочего виджета

Загрузить виджет -
nautic_pages

В рубриках: PHP, WordPress — admin

Июль 12, 2008

Комментариев (12) »

  1. Отличный плагин, я в восторге! :)

    — июля 15, 2008 | 11:20 дп

  2. Молодец! И ведь все свои проблемы решил, да? Когда нет готового подходящего решения, его просто нужно сделать самому. Поздравляю! Надеюсь развитие плагина не за горами?

    — июля 28, 2008 | 10:37 дп

  3. Задумка супер а вот реализация подкачала.
    nautic_pages_path криво работает! Иерархия выводитса отлично а вот ссылки в иерархии одни и теже
    Проще говоря если иерархия выглядит (page1 > page2 >page3) то на всех линках выводитса URL страницы на которой ты сейчас находишся. тоесть если ты в page3 то линки на page1 и page2 будут вести на page3.
    Фикси плагин поскорее! Он нужне людям :)))
    Навсякий случай отписываю где я его проверил
    WordPress 2.6 взял с ru.wordpress.org

    Ramazaki — июля 29, 2008 | 11:11 дп

  4. Поборол траблу с линками описанную в первом моём комменте
    Если кому интересно решение вот:
    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 дп

  5. Да спасибо большое за помощь, как то я пропустил это дело. Нашел и исправил ошибку отображения предыдущей страницы функция nautic_pages_previous(); id страници был неправильный.
    Архив перезалил можно качать.

    admin — июля 29, 2008 | 7:52 пп

  6. И всё таки отличный плагин!!!
    Может его можно както подключить не как виджет а отдельно как функции nautic_pages_path и nautic_pages_previous и прописав в ручную параметры в функцию получить такойже результат как и через виджет. Это единственное чего плагину очень не хватает.
    Пробовал разобратса самостоятельно но водки не хватило :)

    Ramazaki — августа 4, 2008 | 7:51 дп

  7. Такую возможность я даже не рассматривал. По быстрому переписать 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 пп

  8. ЭЭэм… а как можно сделать такую вот вещь, чтобы у плагина первая ссылка была не активна, тк в моем случае она ведет на фиктивную страницу, которая как бы есть для краисовой навигации, но сама по себе является пустой и ссылок на нее нет. только вот этот плагин их добавляет. А так спасибо, очень пригодился! ))

    KK — августа 5, 2008 | 5:26 дп

  9. Не совсем понял что требуется :( в плагине есть возможность текущую страницу показывать не как ссылку, а как текст.
    Если не то что требуется и надо изменить вывод плагина подключите фильтр “wp_list_pages”
    типа

    function moia_funcia($content){
    return “Добавляем чего нибудь”.$content;
    }
    add_filter(’wp_list_pages’, ‘moia_funcia’);

    это куплет можно добавить functions.php в папке текущего шаблона

    admin — августа 5, 2008 | 6:49 дп

  10. а как его установить. Я новичок. Подкажите плиз. Ни как не могу разобраться

    — августа 27, 2008 | 8:13 дп

  11. Как любой другой плагин-виджет, скопировать файл в папку с плагинами, активировать в админ панели, а затем Дизайн->виджеты мышкой перетащить в нужную панель и настроить если надо.

    admin — августа 27, 2008 | 10:31 пп

  12. спасибо, буду пробовать

    — августа 28, 2008 | 8:12 дп

RSS-лента для комментариев к этой публикации. Трекбек URI

Оставьте свой комментарий