Пока создавал и доводил до ума тему узнал много интересного. Сейчас расскажу про условные тэги.
Это такие функции, которые знает WordPress, возвращающие булево значение (thue и false). Кто знаком с PHP или хотя бы C++ следующий абзац могут пропустить.
Применяться условные тэги могут так: if (условние) { некоторые действия}. Можно применять операторы “и” ( && ) и “или” ( || ). И еще отрицание ( ! ), забыл совсем . Например так действия будут выполняться при обоих условиях: if (условие 1 && условие 2) {…}. С помощью круглых скобок можно составлять сложные конструкции. Например, tесли требуется, чтобы либо выполнилялось условия1 и не выполнялось условие 2, либо выполнилось условие 3 код должен выглядеть так: if ((условие 1 && (!условие 2)) || условие 3 ){…}.
Вернемся к самим условным тэгам. Самый известный из них, наверное, is_home(). Он возвращает true, если это страница где последние посты (по умолчанию главная страница).
Похожий условный тэг is_front_page() выдает true, если страница главная и ему не важно, страница с постами это или статическая.
is_admin() – если админка
is_single() – если пост отображается отдельно. У этого тэга есть параметры. is_single(’76’) – если отображается пост с ID 76. is_single(‘Мой пост’) – если отображается пост с заголовком “Мой пост”. is_single(‘my-post’) – если пост с коротко ссылкой вида http://…/my-post . Если нужно, чтобы выполнилось хотя бы одно из условий, то используют массив: is_single(array(76,’my-post’,’Мой пост’)). Условий этих может быть сколько угодно.
comments_open() – если комментарии открыты. Полезно использовать с другими тэгами, т.к. у меня почему-то выдал true на главной.
pings_open() – если разрешены пинги.
is_page() – если статическая страница. Параметры такие же, как у is_single().
is_category() – если есть категории. Параметры такие же как и в предыдущих двух случаях.
is_tag() – если отображается список постов с одним тэгом. is_tag (‘Мой тэг’) – если текст тэга соответствует заданному параметру. Так же и с самой ссылкой. Так же и как в других случаях в качестве параметра можно задать массив.
has_tag() – если посту присвоены тэги. Параметры как в предыдущем случае.
is_author() – если отображается список постов одного автора. В качестве параметров ID, имя и ник. Можно использовать массив.
is_archive() – если архив.
Если архив, основанный на дате, то для его определения используется is_date(). И is_year(), is_month(), is_day(), is_time(), если архив по годам, месяцам, дням и времени(по часам, минутам и секундам) соответственно.
is_search() – если страница поиска
is_404() – если ошибка 404 (нет такой страницы)
is_paged() – если все посты не умещаются на главную страницу
is_attachment() – если отдельная страница прикрепленного файла
is_preview() – если отображается неопубликованный пост в режиме предпросмотра.
JustFor вернулся и написал пост о том, как скормить Сапе как можно больше страниц. 9seo обозревает блогосферу.
марина 26.08.2009 в 18:16
Михаил 27.08.2009 в 7:04
Ого, спасибо за такую справку, думаю пригодится
gesportvideo.ru 30.06.2010 в 10:34
Немного не в тему, но вопрос такой возник автору. А почему вы именно wordpress выбрали для своего блога. Я вот ваш блог постоянно читаю
Павел 3.10.2010 в 14:44
Вообще можно долго рассказывать какие есть функции в ВП. Некоторыми надо уметь пользоваться, ато не будет результата от них.
Самир 28.05.2011 в 2:08
Здравствуйте. Мой блог на вордпресс и в прошлом году наткнулся на проблему. Мне нужно было сделать так чтобы на каждой странице, картинка в header должна была меняться. И в этом мне помогли условные теги вордпресс. Но теперь, я хочу в обычном php сайте сделать то же самое, т.е сделать так чтобы на каждой странице, картинка в header должна меняться. Но не знаю как написать код. Может поделитесь опытом.
[m.k] 29.05.2011 в 19:51
Самир, на чем сайт то? Самописная CMS?
Самир 4.06.2011 в 1:31
Спасибо за отклик [m.k]. Сайт написан на php (самописная cms). Вот хотелось бы сделать так. Например, если загружается http://site.ru/index.php программа загружала в хедере одну куртину, если скажем, http://site.ru/contact.php программа загружала другую картину и в остальных страницах тоже аналогично. Буду ждать Ваших советов.
[m.k] 4.06.2011 в 9:07
Самир, можно сделать просто – завести какую-нибудь переменную, на каждой станице задавать ей свое значение и проверять.
$pagetype=1;
И в коде вместо адреса картинки
< ?php switch($pagetype) { case 1: echo ("index.jpg"); case 2: echo ("about.jpg"); case 3: echo ("contacts.jpg"); break; } ?>
ИМХО, самый простой вариант
Самир 4.06.2011 в 12:13
Спасибо Вам [m.k]. Я уверен, что это решение моей проблемы. Я применю выше указанный код на своем скрипте и обязательно дам Вам знать.
Самир 21.06.2011 в 1:20
Обращение к [m.k]
Здравствуйте. Я хотел поблагодарить Вас за совет. Мне очень помог Ваш код по php и к моему восхишению, с этим кодом я добился ожидаемого результата.
seoЛешка 31.07.2011 в 14:12
wordpress вообще достаточно простой CMS и в тоже время функциональный, лучший вариант для новичка.
Андрей Охотников 27.11.2011 в 20:31
Пригодится!
Довольно интерессная информация)
Надо в закладки страничку!)
Tarlan 24.02.2012 в 9:11
Сделаю дополнение, где эти условные теги могут очень пригодиться. Есть такой отличный плагин, как Widget Logic, который позволяет настроить вывод выджетов только на определённых страницах. Именно эти теги он использует в своей работе.
Kats 14.05.2012 в 9:00
Я использую эти теги для WordPress
Александр 18.05.2012 в 19:12
Полезная статья. Что-то внедрю на своем блоге.
Марина 26.01.2013 в 10:15
Взяла на заметку вашу статью,очень многое узнала.