Как только вы закапываетесь в проект на WordPress, обнаруживается, что вам нужно реализовать множество задач. И для них есть множество отличных функций, которые уже встроены в этот движок. Нужно просто знать, как правильно пользоваться этими функциями. Но не всегда можно найти в поиске все нужные функции, и в этом посте мы разберемся, какие функции нужны настоящему WordPress-джедаю.

1. get_post_field

Очень полезная функция для получения данных из таблицы в функции wp_posts без необходимости создавать запрос для всего поста.

get_post_field( $field, $post_id, $context );

Всё говорит само за себя.

2. wp_list_pluck

Крайне полезная функция для работы с массивами, которая позволяет задать конкретное значение для массива без создания цикла и поместить его в новый массив:

wp_list_pluck( $list, $field );

3. antispambot

Очень часто вместо этой функции используют библиотеки сторонних разработчиков. Эта функция автоматически конвертирует электронные письма и адреса в HTML, чтобы избавиться от проклятых спам-ботов. Достаточно ввести пару значения в настройках — и всё готово!

antispambot( $emailaddy, $mailto );

4. checked / selected

Часто в работе нужны функции для проверки того, выбраны ли значения или нет. В WordPress есть встроенная функция и для этой цели. А точнее — даже 2 функции. Они помогут проверить корректность атрибутов.

Если пользоваться стандартным утверждением if — получим следующий код:

<input type='checkbox' name='options[postlink]' value='1' <?php if ( $foo == 1 ) echo 'checked="checked"'; ?> />

А вот используя функцию checked, получаем:

<input type="checkbox" name="options[postlink]" value="1" <?php checked( $foo, 1 ); ?> />

Работа со стандартным условным утверждением выглядит так:

<select name="foo">
    <option value="1" <?php if ( $foo == 1 ) echo 'selected="selected"'; ?>>1</option>
    <option value="2" <?php if ( $foo == 2 ) echo 'selected="selected"'; ?>>2</option>
    <option value="3" <?php if ( $foo == 3 ) echo 'selected="selected"'; ?>>3</option>
</select>

А вот как работает WordPress-функция selected:

<select name=foo">
    <option value="1" <?php selected( $foo, 1 ); ?>>1</option>
    <option value="2" <?php selected( $foo, 2 ); ?>>2</option>
    <option value="3" <?php selected( $foo, 3 ); ?>>3</option>
</select>

5. body_class

Добавление собственных классов к постам и страницам никогда не было проще, чем с этой функцией, которая встроена в движок — достаточно одного-единственного тега:

<body <?php body_class(); ?> >

6. human_time_diff

Эта функция аналогична популярной функции Twitter: просто введите 2 временных отметки для того, чтобы указать интервал времени. Полезна, если надо указать время, когда пост был отредактирован либо обновлен уже после его публикации.

human_time_diff( $from, $to );

7. wp_send_json_successwp_send_json_error

Парочка сравнительно новых функций, которые появились в WordPress, начиная с версии движка 3.5, для работы с JSON. Поможет вам обойтись без создания отдельного массива. Всё просто и эффективно!

wp_send_json_success( $data );
wp_send_json_error( $data );

8. wp_remote_getwp_remote_post

Эти вспомогательные функции достаточно просто добавляют данные из удаленных источников. Обычно вам надо было писать что-то наподобие:

$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);

Но весь этот код можно заменить одной короткой функцией:

wp_remote_get( $url, $args );

9. get_template_part

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

get_template_part( 'loop', 'index' );

Надеюсь, эти функции помогут вам в работе и упростят решение типичных задач при программировании новых сайтов. Удачного кодинга!

Источник: laserred.co

Вам понравился материал?

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

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

6 комментариев

сначала новые
по рейтингу сначала новые по хронологии
Евгений

Добрый день. Есть проблема - на сайте есть страница с договором и с нее переход к оплате. И необходимо сделать так, чтобы пока не отмечен чек бокс "согласен с договором" перейти к оплате было бы невозможно.
Если не ошибаюсь то пункт 4 данной статьи как раз то что нужно, но вот не соображу по поводу ее реализации, подскажите, пжл,

И вправду о многом не знал, полезно, сразу в закладки и заметки. Спасибо.

ForrestBonduran

Спасибо, понадобилось

Vitalij Korotkov

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

Ethernotificationer

в css прописать. a:hover и дальше что именно нужно.
К примеру как здесь a:hover img {opacity: 0.8; }

Vitalij Korotkov

Большое человеческое спасибо!