Условные теги WordPress. 10 примеров использования
Условные теги являются одним из мощных инструментов, которые помогают облегчить разработку проектов на WordPress. В данном уроке мы рассмотрим несколько условных тегов и примерами функций, использующих их для реализации различных задач, таких как очистка страницы ошибок или изменение фавиконки для панели администратора.
Что такое “условный тег”?
Они отвечают на вопрос типа “да/нет”: они возвращают только TRUE или FALSE, когда их используют. Условные теги применяются в выражениях if
– в зависимости от значения TRUE или FALSE, мы можем использовать наш код в соответствии с ответом.
Все условные теги описаны в кодексе WordPress.
В нашем уроке представлены 10 условных тегов.
Функция 1. Выводим сообщение на главной странице с помощью is_front_page()
Приветствие посетителя сайта на главной странице может положительно сказать на репутации веб проекта. Также можно выводить различные информационные сообщения или "ненавязчивую" рекламу.
Сначала нужно скачать плагин ColorBox jQuery. Берем файл colorbox.min.js из папки “colorbox/colorbox” и colorbox.css (вместе с соответствующей папкой “images”) и размещаем их в папке “colorbox” в своем проекте.
Затем создаем файл colorbox.load.js, чтобы загрузить всплывающее информационное окно. Размещаем данный файл также в папке “colorbox”:
jQuery(document).ready(function($) { var $popup = $("#mypopup"); $.colorbox({href:$popup}); });
После чего размещаем код HTML всплывающего окна (с идентификатором “mypopup
” для CSS) внутри файла index.php вашей темы и скрываем его в файле style.css (с помощью кода “#mypopup {display:none;}
“).
function front_popup() { if(is_front_page()) { // загрузить colorbox.min.js wp_enqueue_script('colorbox-js', get_template_directory_uri().'/colorbox/colorbox.min.js',array('jquery')); // загрузить colorbox.load.js wp_enqueue_script('colorbox-load-js', get_template_directory_uri().'/colorbox/colorbox.load.js',array('colorbox-js')); // загрузить colorbox.css wp_enqueue_style('colorbox-css', get_template_directory_uri().'/colorbox/colorbox.css'); } } add_action('wp_head','front_popup');
Копируем данный код в файл functions.php!
Примечание: для того, чтобы закрыть всплывающее окно, нужно добавить ссылку в код всплывающего окна. Например, такую:
<a href="javascript:$.colorbox.close();">Закрыть</a>
Функция 2. Добавляем код CSS и JS на определенную страницу с помощью is_page()
Вам может понадобиться загружать дополнительные файлы JavaScript или CSS для определенной страницы. Конечно, можно включить их в содержание, но такая практика порочна. Лучше сделать следующим образом:
function extra_assets() { if(is_page(123)) { // '123' - идентификатор страницы, которая нуждается в дополнительных файлах wp_enqueue_script('my-script', get_template_directory_uri().'/some/path/in/your/theme/folder/script.js'); wp_enqueue_style('my-style', get_template_directory_uri().'/some/path/in/your/theme/folder/style.css'); } } add_action('wp_head','extra_assets');
Как и в первом примере, код нужно добавить в файл functions.php. (Нужно изменить число “123
” на реальный идентификатор страницы!)
Функция 3. Раздел “Еще из данной категории” для записи в специальной категории с помощью in_category()
Иногда требуется организовать раздел “Еще из данной категории” для определенной категории (и только для нее). Допустим, у вас есть категория “Новости” и другие категории не подходят для раздела, который нужно создать. Условный тег in_category()
поможет решить задачу:
function more_from_category($cat_ID) { if(in_category($cat_ID) { $posts = get_posts('numberposts=5&category='.$cat_ID); $output = '<h3>Еще из данной категории</h3>'; $output.= '<ul>'; foreach($posts as $post) { $output.= '<li><a href="'.get_the_title().'">'.get_permalink.'</a></li>'; } wp_reset_query(); $output.= '</ul>'; echo $output; } }
Делаем функцию такой, какая требуется для задачи и добавляем ее в файл functions.php. Затем открываем файл single.php и помещаем код (<?php more_from_category(123); ?>
) туда, где должен появляться раздел.
Функция 4. Выводим имя автора на странице предварительного просмотра с помощью is_preview()
Может потребоваться выводить имя автора на странице предварительного просмотра. Добавляем следующий код в файл functions.php вашей темы:
function preview_warning() { if(is_preview()) { echo '<div id="preview-warning">Вы находитесь на странице предварительного просмотра!<div>'; } } add_action('the_content','preview_warning');
Конечно, нужно еще добавить код в файл style.css, для формирования текста предупреждения:
#preview-warning { background:#800; line-height:50px; font-size:30px; font-weight:bold; text-align:center; position:fixed; bottom:0; }
Функция 5. Удаляем определенные элементы со страницы 404 с помощью is_404()
Самый простой код из всех, приведенных в данной статье. Нужно просто заключить “определенные элементы” в приведенный ниже код (например, рекламные блоки)!
if(!is_404()) { // Здесь размещаются "определенные элементы". }
Функция 6. Скрываем автоматически генерированную цитату с помощью has_excerpt()
Некоторым, не нравится автоматически генерированные цитаты. Для удаления можно воспользоваться кодом, который приведен в кодексе WordPress:
function full_excerpt() { if (!has_excerpt()) { echo ''; } else { echo get_the_excerpt(); } }
Добавляем его в файл functions.php и заменяем реализацию the_excerpt()
на full_excerpt()
.
Функция 7. Формируем список заголовков записей (вместо полного содержания) в архиве на основе дат с помощью is_date()
Иногда списка заголовков более чем достаточно на определенных страницах архива – например, для архива на основе дат. С помощью условного тега is_date()
можно выкинуть лишнее из основного цикла , кроме заголовка.
Данная техника требует внимания, так как фалы archive.php различаются в каждой теме. (А если в вашей теме есть файл date.php, вам следует редактировать его). Найдите основной цикл в коде и меняйте его следующим образом:
if(is_date()) { // Если тема использует заголовки h2 для записей, используйте h2. Если - h1, используйте h1. echo '<h2>'.the_title().'</h2>'; } else { // ... // Оригинальный код в основном цикле // ... }
Функция 8. Изменяем фавиконку для панели администратора с помощью is_admin()
Данный код может быть полезен, когда вы работаете с большим количеством открытых закладок в вашем блоге. В таком случаем можно немного изменить фавиконку и сохранить ее как adminfav.ico – например, фавиконка панели администратора может иметь другой цвет фона.
Остается только добавить код в файл functions.php:
function admin_favicon() { if(is_admin()) { echo '<link rel="shortcut icon" href="'.get_bloginfo('url').'/adminfav.ico" />'; } } add_action('admin_head','admin_favicon');
Функция 9. Выводим миниатюры для записи по умолчанию с помощью has_post_thumbnail()
В хорошо продуманных темах в отсутствие миниатюры у записи выводится изображение по умолчанию. Для таких случаев нужно изменить код функции the_post_thumbnail()
следующим:
if(has_post_thumbnail()) { the_post_thumbnail(); } else { echo '<img src="'.get_template_directory_uri().'/images/default-thumb.jpg" alt="'.get_the_title().'" class="default-thumb" />'; }
Таким образом можно сохранить целостность внешнего вида темы.
Функция 10. Выводим специальное меню для зарегистрированных пользователей с помощью is_user_logged_in()
Если ваш проект имеет зарегистрированных пользователей, то у вас может возникнуть необходимость создать для них специальное меню. Задача решается следующим образом:
function member_menu() { if(is_user_logged_in()) { echo '<div class="member-menu"><h2>Специальное меню</h2><ul><li><a href="#">Первый пункт меню</a></li><li><a href="#">Второй пункт меню</a></li><li><a href="#">Третий пункт меню</a></li></ul></div>'; } }
Здесь представлен обычный код “заголовок и список”. Следует сделать его таким, как и код боковой панели вашей темы и затем разместить код <?php member_menu(); ?>
в вашей теме в файле sidebar.php.
Также, в идеале следует использовать пользовательское меню WordPress с помощью wp_nav_menu()
. Одно стандартное и одно для зарегистрированных пользователей, а затем вы можете управлять ими с помощью панели администратора WordPress.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/LrBC3Jal3pY/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Всегда храни верность своему начальнику - следующий, может быть еще хуже... |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.