Малоизвестные функции в WordPress
Случалось ли с вами, что во время разбора кода стороннего плагина или темы, вы находили довольно полезную стандартную функцию, о которой раньше не знали? В такие моменты любой разработчик ощущает чувство собственной ничтожности, вспоминая какие велосипеды он городил в предыдущих проектах.
Дабы уменьшить количество расстройств, я решил описать несколько малоизвестных, но весьма полезных функций:
make_clickable
Находит в тексте ссылки и делает их кликабельными.
Пример:
$string = "This is a long text that contains some links like http://www.wordpress.org and http://www.wordpress.com ."; echo make_clickable( $string );
popuplinks
Добавляет target='_blank' rel='external'
всем ссылкам в тексте.
Пример:
$string = "This is a long text that contains some links like <a href='http://www.wordpress.org'>http://www.wordpress.org</a> and <a href='http://www.wordpress.com'>http://www.wordpress.com</a> ."; echo popuplinks( $string );
wp_list_pluck
Достает определенные поля из коллекции.
Пример:
$posts = get_posts(); $ids = wp_list_pluck( $posts, 'ID' ); // [1, 2, 3, ...]
antispambot
Преобразовывает адреса электронной почты в символы HTML, для защиты от спам-ботов.
Пример:
$email = 'example@email.com'; echo '<a href="mailto:' . antispambot( $email ) . '">' . antispambot( $email ) . '</a>';
checked / selected
Добавляет атрибут checked (selected)
если первый параметр равен второму.
Пример:
<input type="checkbox" name="remember" value="1" <?php checked( $remember ) ?> /> <select name="options"> <option value="1" <?php selected( $options, 1 ); ?>>1</option> <option value="2" <?php selected( $options, 2 ); ?>>2</option> <option value="3" <?php selected( $options, 3 ); ?>>3</option> </select>
human_time_diff
Представляет разницу во времени в понятном для человека виде.
Пример:
$published = get_the_time( 'U' ); echo human_time_diff( $published ); // 2 days
wp_send_json_success / wp_send_json_error
Выводит данные в JSON формате для Ajax запросов.
Пример:
if( $success ) { $result = array( 'message' => 'Saved', 'ID' => 1 ); wp_send_json_success( $result ); // { "success": true, "data": { "message": "Saved", "ID": 1 } } } else { wp_send_json_error(); // { "success": false } }
wp_remote_get / wp_remote_post
Получает данные со стороннего web-ресурса.
Пример:
$response = wp_remote_get( "https://api.twitter.com/1.1/search/tweets.json?q=%23WordPress", array( 'timeout' => 10 ) ); $tweets = wp_remote_retrieve_body( $response );
wp_is_mobile
Определяет устройство пользователя.
Пример:
if ( wp_is_mobile() ) { get_footer( 'mobile' ); } else { get_footer(); }
wp_oembed_get
Конвертирует ссылку на медиа ресурс в код проигрывателя.
Пример:
$youtube_url = 'https://www.youtube.com/watch?v=Lcvh0DgytH8'; $embed_code = wp_oembed_get( $youtube_url, array( 'width' => 800 ) );
wp_tempnam
Создает временный файл с уникальным именем.
Пример:
wp_tempnam( 'cache.log', get_temp_dir() );
zeroise
Дополняет число нулями до определенной длины.
Пример:
$tickets_count = 8; echo zeroise( $tickets_count, 3 ); // 008
capital_P_dangit
Исправляет распространенную ошибку в названии бренда WordPress.
Пример:
$string = "I Love WordPress"; echo capital_P_dangit( $string ); // I Love WordPress
get_num_queries
Показывает общее количество SQL-запросов к базе данных на странице.
Пример:
<!-- Number of queries: <?php echo get_num_queries(); ?> -->
wp_text_diff
Находит различия в тексте и отображает их в удобном для сравнения виде.
Пример:
$left_string = 'This is the original string'; $right_string = 'This is the revised string'; echo wp_text_diff( $left_string, $right_string );
submit_button
Генерирует код кнопки.
Пример:
<?php submit_button( __( 'Save Changes' ) ); ?>
Источник — http://habrahabr.ru/post/233089/.
Отличное решение для внутренней перелинковки своих статей — это добавление блока «Рекомендуемые статьи» в конце…
Суть проблемы — при переносе сайта с одного хостинга на другой, настройки виджетов сбиваются, не…
На нескольких сайтах необходимо было переместить большое количество записей из одной категории в другую. Если…
Видел в сети массу разных решений, но все они имеют свои минусы, при чем некоторые…