среда, 23 января 2008 г.

страницы (Page) в wordpress и исключение страницы из списка

Надо где то показывать свои комментарии с чужих блогов. Поскольку эти комментарии не относятся к комментариям постов, то они нигде не будут показаны по умолчанию. Wordpress предоставляет возможность создания собственных страниц (Page) - понятие/термин в wordpress. Создать страницу не сложно - это легко делается из панели управления. Страница wordpress не является постом - у нее нет даты и рубрики 9(категории), и по умолчанию в шапке блога на нее стоит ссылка. Чтобы ссылку оттуда убрать надо предпринимать специальные действия: в шаблоне темы (header.php), подправить строку с вызовом функции wp_list_pages. В моей текущей теме стоит следующий вызов:
$pages = wp_list_pages(’sort_column=menu_order&depth=1&title_li=&echo=0′);
документация по wordpressсоветует следующее для исключения страницы:
wp_list_pages(’exclude=17,38′ );
следовательно, для моего случая изменение должно быть таким:
$pages = wp_list_pages(’sort_column=menu_order&depth=1&title_li=&echo=0&exclude=’.$MyCommentsPageId);
где соответственно $MyCommentsPageId = ID созданной страницы для внешних комментариев - упаси бог запоминать еще и порядковые номера страниц. Очевидно, что этот индификатор должен храниться в настройках плагина и следовательно должен быть извлечен перед вызовом получения списка страниц. Вручную страницу создавать для плагина - это моветон, многие просто не справятся со столь “не тривиальной” задачей. Значит надо во время установки плагина создать страницу и запомнить ее индификатор.
Но это еще не все. Необходимо чтобы на этой странице все таки были отображены внешние комментарии. Для этого нужно использовать функции php, которые разработчики wordpress стыдливо называют тегами wordpress. Из той же документации по страницам wordpress предлагается использовать новые файлы для темы, которые подключаются для конкретной страницы в настройках контрольной панели. Но этот путь мне кажется мало применимым, так как речь идет о плагине, который должен работать на всех блогах wordpress. Другой путь - это соответствующий хук в плагине, который бы генерировал бы контент для страницы - точно знаю что это несложно, но пока сам такой хук еще не писал, но не думаю, что это будет сколь нибудь сложно. Вырисовывается следующая проблема: когда внешних комментариев будет слишком много и их потребуется выводить на нескольких страницах. С точки зрения php это не сложная задача, но вот как ее разрулить для корректной работы wordpress, я пока не знаю: просто не решал подобную задачу.
Из простой идеи социального блоггинга вырастает не маленький плагин. Может быть я слишком перемудрил? Может быть я не вижу более оптимального пути решения? Черт с ней со ссылкой в шапке на страницу - пусть опытные ее оттуда убирают вручную, как я описал выше, основной массе потребителей пойдет по умолчанию. Следующей терра инкогнита для меня является локализация плагина - создание языковых модулей и их формат хранения, и как с ними вообще возиться. Очевидно, что этот плагин может хорошо продвинуться в буржунете - для этого создам специальный блог под плагин на одном своем англоязычном сайте.

Здесь можно оставить свои комментарии. Выпуск опубликован при помощи плагина subscribe.ru and blogspot.com cross poster

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