Десять WordPress функций, о которых вы могли не знать

Давно разрабатываете на WordPress и думаете, что знаете все о нем от А до Я? Не думаю… В этом посте я приведу 10 самых полезных и редко используемых WordPress функций (тегов шаблонов), которые помогут вам в процессе кодинга…

Этот пост является своеобразным логическим продолжением моих прошлых публикаций: Три секрета массивов в JavaScript, о которых вы могли не знать, Четыре полезных JavaScript оператора, о которых вы могли не знать. Переходите по ссылкам и возможно вы узнаете что-то новое для себя.

Вступление

Изначально WordPress обладает огромным набором шаблонных тэгов, которые постоянно обновляются/добавляются по мере выхода новых WP версий.

Шаблонные теги – это WP функции, которые позволяют грамотно манипулировать данными в шаблоне.

Если вы разрабатывали WordPress тему, то вы может быть знакомы с некоторыми из этих шаблонных тегов, например такими как the_title, который показывает заголовок сообщения или the_author, который показывает имя автора сообщения и ссылку сообщения.

WordPress продолжает активно развиваться и каждая новая версия частенько содержит в себе несколько новых шаблонных тегов. Поэтому знать о всех тегах и быть постоянно «в теме», довольно сложная задача, особенно на сегодняшний день, когда все постоянно развивается и обновляется. Ниже представлен список шаблонных тегов, но естественно не всех, а именно 10 самых редких и интересных на мой взгляд.

Заглавная буква «P»

А вы знаете как правильно записывается слово «Wordpress»? В прошлом предложении я допустил ошибку в названии cms, но если бы я использовал функцию capital_P_dangit(), то буква «P» стала бы заглавной. Эта функция была добавлена еще в далеком 2009 году и по сей день позволяет писать слово WordPress правильно.

С версии 3.0.0

$footer_text = get_theme_mod( "footer_text", "" );
$footer_text = captial_p_dangit( $footer_text );
 
add_filter( "the_excerpt", function( $text ) {
  return captial_p_dangit( $text );
} );

Пользовательский логотип

С версии 4.5, WordPress позволяет загрузить логотип через стандартный кастомайзер. Эту функцию необходимо добавить в поддержку темы с помощью кода add_theme_support( 'site-logo' ), и логотип появится в кастомайзере.

Также, эта функция открывает возможность использовать другие стандартные функции работы с логотипом, а именно: has_custom_logo(), get_custom_logo(), и the_custom_logo().

С версии 4.5.0

the_custom_logo();
 
$logo = get_custom_logo();

if ( has_custom_logo() ) {
  $logo = get_custom_logo();
}

add_filter( "get_custom_logo", function( $html ) {
  return '<div class="site-logo">'. $html .'</div>';
} );

URL миниатюры

В WordPress есть очень мощная и гибкая функция для вывода изображения миниатюры — the_post_thumbnail(), которая не только выводит изображения, но генерирует атрибуты для работы с ними.

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

С версии 4.4.0

<?php echo get_the_post_thumbnail_url();
 
<div class="image-thumbnail" style="background-image; url(<?php echo get_the_post_thumbnail_url() ?>)"></div>

Случайное число

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

С версии 2.6.2

$rand_number = wp_rand( 1, 200 );

Нумерация комментариев

Большинство тем в настоящее время использует функцию the_comments_navigation(), которая даст «Следующий» и «Предыдущий» тип навигации. Но если вы хотите показать пронумерованную навигацию (разбить комментарии на страницы), используйте функцию the_comments_pagination().

Обратите внимание, что данный шаблонный тег доступен лишь с версии 4.4.0 и выше, поэтому перед его использованием на всякий случай сделайте проверку на его «существование».

С версии 4.4.0

<?php

if ( function_exists( 'the_comments_pagination' ) ) {
  the_comments_pagination();
} else {
  the_comments_navigation();
}
 
<ol class="comment-list">
  <?php
    wp_list_comments( array(
      'style'       => 'ol',
      'short_ping'  => true,
      'avatar_size' => 42,
    ) );
  ?>
</ol>

Обрезание URL

Этот шаблонный тег может сократить длину вашего URL в соответствии с заданным количеством символов. Эта функция очень полезна если у вас есть длинный URL, который не перенесется на вторую строку, а будет выходить за пределы контейнера. Конечно, для этого вы можете использовать в CSS overflow-wrap: break-word;, но бывают случаи, когда CSS вариант может не подойти и проще написать url_shorten() функцию.

С версии 1.2.0

$link = get_the_permalink();
$url_text = url_shorten( $link );
echo '<a href="'. $link .'">'. $url_text .'</a>';

Встроенные скрипты

Для того, чтобы зарегистрировать/загрузить скрипт и его зависимости, всегда использовалась функция wp_enqueue_script. Загрузка встроенного скрипта происходит иначе, и через функцию wp_add_inline_script. Эту функцию нужно использовать после того как основной скрипт добавлен в очередь на вывод, но еще не выведен на экран. Кроме этого добавление внутреннего скрипта может быть выполнено только к уже другому ранее зарегистрированному скрипту. Поэтому в функции используется 3 параметра:

  1. Название скрипта к которому добавляется дополнительный скрипт (работа подобна wp_localize_script() функции);
  2. Содержание сценария;
  3. Положение. Где должен отображаться блок — до или после.

С версии 4.5.0

function enqueue_script() {
  wp_enqueue_script( 'twentysixteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20160412', true );
  wp_add_inline_script( 'twentysixteen-script', 'window.hkdc = {}', 'before' );
}
add_action( 'wp_enqueue_scripts', 'enqueue_script' );

Выпадающее языковое меню

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

С версии 4.0.0

wp_dropdown_languages( array(
    'id' => 'lang_options',
    'name' => 'lang_options',
    'languages' => get_available_languages(),
    'translations' => array( 'id_ID', 'ja' ),
    'selected' => 'en_US',
    'show_available_translations' => false,
    )
);

URL аватара

Через шаблонный тег get_avatar_url() можно вывести полный URL до аватара пользователя, используя например его ID или почту. В итоге вы сможете отображать аватар пользователя и модифицировать его как вам угодно.

С версии 4.2.0

$avatar = get_avatar_url( 'admin@domain.by' );
<div class="avatar-url" style="background-image: url(<?php echo $avatar; ?>)">
</div>

Информация о теме

Эта функция получает объект содержащий в себе всю информацию о текущей активированной теме. Эта информация включает в себя: имя, версию, автора темы ит.п.

В коде представленном ниже, показано получение версии темы и передача ее в версию подключаемых скриптов.

С версии 3.4.0

theme = wp_get_theme();
define( 'THEME_SLUG', $theme->template );
define( 'THEME_NAME', $theme->get( 'Name' ) );
define( 'THEME_VERSION', $theme->get( 'Version' ) );
 
function load_scripts() {
  wp_enqueue_script( 'script-ie', $templateuri .'js/ie.js', array( "jquery" ), THEME_VERSION );
  wp_script_add_data( 'script-ie', 'conditional', 'lt IE 9' );
}
add_action( 'wp_enqueue_scripts', 'load_scripts' );

Подписаться на новые статьи