Хотя название урока «Поле поиска и календарь», я немного расскажу и о блоке Meta. Давайте сегодня закончим рассматривать стандартный сайдбар и в следующий раз наконец узнаем, как его виджетировать. Ну что ж, поехали…
Шаг 1
Добавляем поле поиска. Перед тем, как я дам вам код, создайте новый файл в редакторе, оставьте его чистым и сохраните под именем searchform.php (конечно, в той же папке, где находится файл index.php). Скопируйте код из файла searchform.txt в ваш файл searchform.php. Пока все, на этом временно оставим файл searchform.php в покое.
В файле index.php наберите следующий код, над всеми списками в сайдбаре:
<li id="search"> <?php include(TEMPLATEPATH . '/searchform.php'); ?> </li>
Сохраните файл и обновите браузер. Вот результат:
Что произошло?
- <li id=”search”> - открыть элемент списка с ID search. Вы присваиваете ему ID, чтобы потом можно было стилизовать.
- include() – включить любой файл, который вы хотите. Эта функция отличается от функции шаблона WordPress, потому что функция include() просто включает то, что уже есть там. В этом случае, это код из файла searhform.php. Информация которая включается, не меняется вместе с блогом. Другими словами, мое поле «Поиск» выглядит точно так же, как и ваше.
- TEMPLATEPATH – место нахождения папки с вашей темой, wp-content/themes/tutorial
- ‘/searchform.php’ – место расположения и имя файла, /searchform.php
- Точка между TEMPLATEPATH и ‘/searchform.php’ связывает их, так что в итоге вы получите:
wp-content/themes/tutorial/searchform.php - </li> - закрыть элемент списка
Обратите внимание, что блок с полем поиска не имеет подзаголовка, как Категории, Архивы, Страницы или Лента блогов. Вы можете дать ему подзаголовок, если хотите, но для того, чтобы ваш сайдбар был как можно больше приближен к виджетизированой версии, не нужно делать подзаголовок.
Шаг 2:
Добавляем календарь. Введите следующий код под полем поиска или блоком списка страниц:
<li id="calendar"><h2><?php _e('Календарь'); ?></h2> <div id="_mcePaste"><?php get_calendar(); ?></div> <div id="_mcePaste"></li></div> <li id="calendar"><h2><?php _e('Календарь'); ?></h2><?php get_calendar(); ?></li>
Сохраните и обновите окно. Вот результат:
Что же происходит?
- <li id="calendar"> - открыть элемент списка с ID, под именем “calendar”
- <h2> - начать подзаголовок
- <?php _e('Календарь'); ?> - напечатать слово Календарь
- </h2> - закрыть подзаголовок
- get_calendar() – вызвать календарь с помощью функции get_calendar()
- </li> - закрыть элемент списка
С календарем все предельно просто. Будем считать что мы закончили.
Шаг 3:
Добавляем Мета. Введите следующий код под get_links_list():
<li><h2><?php _e(’Meta’); ?></h2> <ul> <?php wp_register(); ?> <li><?php wp_loginout(); ?></li> <?php wp_meta(); ?> </ul> </li>
Сохраните и обновите окно. Вот результат:
(Если вы не зашли в админпанель WordPress)
(Если зашли)
Что произошло?
Вы открыли элемент списка (LI) с подзаголовком (H2) Meta. Под подзаголовком вы разместили ненумерованный список (UL). И поставили вокруг него (для каждой ссылки) тэги элемента списка (LI).
Функция wp_register() генерирует собственный набор тэгов <li> и </li>; когда вы не авторизованы, отображается ссылка Register; когда вы авторизованы, вы видите ссылку Site Admin. Функция wp_loginout() не генерирует свои тэги элемента списка, так что вы их поставили вокруг нее; когда вы не авторизованы, вы видите ссылку Login; когда авторизованы – ссылку Logout. Пока что функция wp_meta() ничего не делает; она невидима как на веб-странице, так и в исходном коде. Пока не думайте о функции wp_meta(); вы будете редко ее использовать.
Это все. Мы закончили с Meta и полностью рассмотрели стандартный сайдбар.
Спасибо что подробно все объяснили.
Большое спасибо, а продолжение когда будет?
Полезная информация, попробую обязательно.
Спасибо! Правда, я не совсем понимаю, почему вы вместо кавычек и стрелочек использовали в этом уроке “lt” и “gt”. Когда их вводишь в код – отображается ерунда. Может недоразумение какое-то? Заменил на ” и > – все заработало.
Adelante, бывает иногда, всё поправил.
Я тоже самое сделал и все пашет.
Немного ошибок в коде… там знак на gt;
заменяет триугольные скобки на код html.
не все ж поймут что надо делать)
чо за путаница в шаге 2?
теги загрыты не правильно или я чо то не понимаю?
Солидарен с Александром, что то не то с 2 Шагом, у меня показевает 2 калиндаря… )
Тут автор наверно хотел показать 2 способа вывесить календарь. Ну впрочем
первых двух строк будет достаточно ;) спасибо за материал
Я вот только не совсем пойму… судя по скрипту он вызывает два раза календарь.
1 календарь
2 календарь
Т.е. я написал так, как здесь и у меня на страницы вылезло два календаря.
Уважаемый, администратор, исправьте плз код календаря на этот.
Ой, простите. Думал что код влезет комент, но не получилось.
Вообщем там последние три строчки лишние кроме закрывающего li
См. код после “Добавляем календарь. Введите следующий код под полем поиска или блоком списка страниц:”
У вас там ошибки:
1) два раза вызывается одна и та же функция get_calendar();
2) div’ы с одинаковыми id
3) неправильно закрытые теги div и li
4) пустой ‘div id=”_mcePaste”‘
Рассказываете нууу оооооочень медленно. Зачем писать по сто раз, что такое закрывающий тег. Вы пишете(сорри, уже написали) туториал по созданию тем для wordpress или мануал по html/css/php?
ИМХО. Ну просто оооочень сильно разжовано
Господа, функция wp_specialchars() считается устаревшей с версии ВП 2.9, рекомендуют вместо нее использовать esc_html() с теми же аргументами. Подкорректируйте код searchform.php.