Передача множественных параметров в теги шаблона WordPress

Выводить содержание при помощи тегов шаблона достаточно просто. Некоторые из них не принимают параметров, другие же могут принимать только один параметр, подобно bloginfo() из примера, приведенного ранее. Однако, существуют теги шаблонов, которые принимают сразу несколько параметров.

Одними из самых полезных для блоггера являются теги шаблона edit_post_link() и edit_comment_link(). Они добавляют ссылки «Изменить» под записями и комментариями, что позволяет быстро отредактировать соответствующий материал.

Обычно эти теги шаблона расположены в файле темы вместе с записями/комментариями. Оба тега должны находиться в пределах цикла (циклы будут подробно рассмотрены в следующем разделе).

Пример использования edit_post_link() с заданными по умолчанию параметрами:

<?php edit_post_link(); ?> 

При размещении указанного выше кода в файле темы вы получите ссылку «Edit this» под соответствующим материалом. Теперь, допустим вы хотите сделать так, чтобы ссылка отображалась в отдельной строке, перед ней стояло слово «Admin», и вместо слов «Edit this» выводилось «Edit this post». Код, ответственный за это, приведен ниже:

<?php edit_post_link('Edit this post', '<p>Admin: ', '</p>'); ?> 

Как вы уже заметили, тег edit_post_link содержит три параметра. Первый параметр — текст ссылки, в данном случае «Edit this post», второй параметр — текст, идущий до ссылки. Поскольку мы хотели сделать так, чтобы весь текст отображался в одной строке, пришлось добавить открывающий HTML-тег <p> до слова Admin. Ну и, наконец, третий параметр — это то, что будет идти после ссылки (закрывающий тег </p>).

Иными словами, тег edit_post_link может принимать три параметра:

<?php edit_post_link( $link, $before, $after ); ?> 

Параметры необходимо заключать в кавычки, и отделять запятыми друг от друга. Порядок следования параметров ни в коем случае нарушать нельзя.

Перейдем к следующему примеру:

<?php wp_tag_cloud(); ?>

Этот тег выводит так называемое «облако тегов», отображающее максимум 45 тегов, размер которых (в пунктах) зависит от их количества в тексте: самые малоиспользуемые — 8pt, самые частоиспользуемые — 22pt. Выводятся они в виде списка, отсортированного по алфавиту, в порядке возрастания использования. Фактически wp_tag_cloud() принимает двенадцать параметров:

  • smallest — минимальный размер тега (8 по умолчанию)
  • largest — максимальный размер тега (22 по умолчанию)
  • unit — задает единицу размера шрифта (по умолчанию pt)
  • number — какое максимальное количество тегов может быть отображено на экране (45 по умолчанию)
  • format — каким образом теги выводятся на экран (в плоском виде, разделенные запятыми, по умолчанию)
  • orderby — в каком порядке выводятся теги (по умолчанию name, т.е. в алфавитном)
  • order — в каком порядке сортируются теги (по умолчанию, по возрастанию использования)
  • exclude — какие теги исключены из облака (по умолчанию none, т.е. никакие)
  • include — какие теги включены в облако (по умолчанию all, т.е. все)
  • link — показывать ссылки (по умолчанию показывать)
  • taxonomy — задает основу для облака тегов (по умолчанию post, т.е. запись)
  • echo — отображать или нет облако тегов (по умолчанию true)

Теперь попробуем изменить некоторые параметры. Тег wp_tag_cloud() принимает параметры в стиле запросов, что довольно удобно и компактно. Пример:

<?php wp_tag_cloud('unit=px'); ?>

В качестве значения для параметра unit мы использовали пиксели — px. Для того чтобы узнать, какие значения можно присваивать параметрам, необходимо обратиться к кодексу: codex.wordpress.org/Template_Tags/wp_tag_cloud. Здесь лишь заметим, что в качестве допустимых значений размера шрифта могут использоваться em, %, px и pt.

Для того чтобы передать сразу несколько параметров, используется амперсанд.

<?php wp_tag_cloud('unit=px&orderby=count'); ?>

Попробуем теперь изменить порядок сортировки на случайный, присвоим самому минимальному тегу размер 10px, а самому максимальному — 24 px.

<?php wp_tag_cloud('smallest=10&largest=24&unit=px&orderby=count&order=RAND'); ?>

Значение параметра order — RAND должно обязательно быть записано в верхнем регистре (другие варианты — ASC для возрастания, DESC для убывания). Вы, вероятно, заметили, что параметры smallest и largest расположены перед параметром unit. Такая форма записи очень удобна, поскольку она опирается на приведенный выше список; найти нужный параметр и изменить его значение в данном случае не составляет никакого труда.

Несколько слов о параметрах

Как уже было сказано выше, существует три разновидности тегов шаблона по количеству принимаемых параметров. Первый тип не принимает никаких параметров; второй тип может принимать один или два параметра, помеченных кавычками; третий тип принимает более двух параметров, которые отделены друг от друга амперсандами (стиль запроса).

Параметры могут быть представлены одним из трех различных типов данных: строковым, целочисленным или логическим. Строковые параметры представляют собой некоторую последовательность символов и заключаются в одинарные или двойные кавычки. Пример строкового параметра: bloginfo(«name»). Целочисленные параметры задаются в виде последовательности цифр. Их можно как заключать в кавычки, так и не заключать. Логические параметры могут задаваться как TRUE или FALSE (true и false), так и в виде цифровых аналогов — 0 (false) и 1 (true). Их помещать в кавычки нельзя.

К примеру, тег шаблона get_calendar() может принимать только одну инструкцию, которая определяет формат вывода дней: в виде полной записи или в виде однобуквенной аббревиатуры. По умолчанию (при передаче параметра true) get_calendar() будет отображать только первую букву названия дня недели. Иначе он будет настроен на вывод полного названия дня:

<?php get_calendar(FALSE); ?>

Аналогично можно было бы написать вместо FALSE цифру 0, или слово false в нижнем регистре.

Другой пример использования логических параметров связан с тегом шаблона the_date(), который несет ответственность за вывод даты записи. Возможно, вы не нуждаетесь в выводе данной информации, и поэтому хотите убрать ее. Тег шаблона the_date() принимает четыре параметра: первый из них определяет формат вывода даты, второй отвечает за то, что будет выведено перед датой, третий — за то, что будет выведено после даты, и четвертый — будет ли осуществлен вывод или нет. Допустим, вы хотите вывести дату в формате год-месяц-день. Сделать это можно следующим образом:

<?php the_date('Y-m-d', '<p>', '</p>'); ?>

Теперь, если вы не нуждаетесь в выводе данной даты, достаточно просто поместить параметр FALSE в самый конец тега шаблона:

<?php the_date('Y-m-d', '<p>', '</p>', FALSE); ?>

Все эти знания пригодятся вам в дальнейшем, при создании мощных сайтов на базе WordPress.

Блог про WordPress
Комментарии: 2
  1. Роман

    Здравствуйте Дмитрий, у меня вопрос по тексту.

    Почему в строке:

    после 24 не стоит знак амперсанда? Опечатка или так и надо?

    1. Дмитрий (автор)

      Опечатка. Поправил, спасибо.

Добавить комментарий

Получать новые комментарии по электронной почте.