Как только вы закапываетесь в проект на 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_success / wp_send_json_error
Парочка сравнительно новых функций, которые появились в WordPress, начиная с версии движка 3.5, для работы с JSON. Поможет вам обойтись без создания отдельного массива. Всё просто и эффективно!
wp_send_json_success( $data );
wp_send_json_error( $data );
8.wp_remote_get / wp_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' );
Надеюсь, эти функции помогут вам в работе и упростят решение типичных задач при программировании новых сайтов. Удачного кодинга!
Комментарии к записи: 6
Какой плагин можно использовать для реализации подсветки изображений (с гиперссылкой) при наведении на него, как у Вас в теме блога. Извините, что не в тему, не знаю куда писать.
в css прописать. a:hover и дальше что именно нужно.
К примеру как здесь a:hover img {opacity: 0.8; }
Большое человеческое спасибо!
Спасибо, понадобилось
И вправду о многом не знал, полезно, сразу в закладки и заметки. Спасибо.
Добрый день. Есть проблема — на сайте есть страница с договором и с нее переход к оплате. И необходимо сделать так, чтобы пока не отмечен чек бокс «согласен с договором» перейти к оплате было бы невозможно.
Если не ошибаюсь то пункт 4 данной статьи как раз то что нужно, но вот не соображу по поводу ее реализации, подскажите, пжл,