WordPress. Настройка темы. Часть 1
31.03.2019
Теги: CMS • Web-разработка • WordPress • Настройка • Функция
Впервые кастомайзер был анонсирован в WordPress 3.4, он позволил пользователю в режиме реального времени наблюдать за изменениями, которые он делает, без фактического изменения сайта. И только после того, как пользователя устроит внешний вид сайта, он может применить настройки, нажав кнопку «Сохранить».
Для регистрации новых возможностей темы предназначена функция add_theme_support(). Если функция вызывается из темы, то она должна находится в файле functions.php. Но её можно вызывать и из плагина, подключив к событию (хуку) after_setup_theme.
Замена логотипа
Чтобы включить возможность загрузки логотипа, добавляем в файл functions.php вызов функции:
/* * Добавляем возможность загрузки логотипа сайта через Customizer */ add_theme_support( 'custom-logo', ['width' => 150, 'height' => 40] );
Теперь в шаблоне темы header.php можно вывести загруженный пользователем логотип:
<header> <nav class="navbar navbar-expand-lg navbar-dark bg-primary"> <div class="container"> <a class="navbar-brand" href="<?= home_url(); ?>"> <?php if (has_custom_logo()): ?> <?php the_custom_logo(); ?> <?php else: ?> <?php bloginfo('name'); ?> <?php endif; ?> </a> <!-- ..... --> </div> </nav> </header>
Чтобы получить все данные о логотипе:
$custom_logo = wp_get_attachment_image_src(get_theme_mod('custom_logo'), 'full'); print_r($custom_logo);
Array
(
[0] => http://www.server.com/wp-content/uploads/2019/03/cropped-flowers.jpg
[1] => 150
[2] => 40
[3] =>
)
Замена фона
Чтобы включить возможность установки цвета и изображения для background, добавляем в файл functions.php вызов функции:
/* * Добавляем возможность установки цвета и изображения для background */ add_theme_support( 'custom-background', [ 'default-color' => 'FFFFFF', 'default-image' => get_template_directory_uri() . '/assets/img/background.jpg' ] );
После этого, WordPress добавит элемент <style> внутрь элемента <head>
<style type="text/css" id="custom-background-css"> body.custom-background { background-color: #b2b2b2; background-image: url("http://www.server.com/wp-content/themes/test_theme/assets/img/background.jpg"); background-position: left top; background-size: auto; background-repeat: repeat; background-attachment: scroll; } </style>
Но этот стиль не будет использоваться, пока мы не добавим CSS-класс custom-background для тега <body>:
<body <?php body_class(); ?>>
body_class() дописывает к тегу body различные классы, в зависимости от того на какой странице находится посетитель, залогинен он или нет и т.д. А функция get_body_class() позволяет получить список этих css классов в виде массива.
Получить URL фонового изображения можно с помощью функции get_background_image(), а вывести — с помощью функции background_image().
Разные опции темы, связанные с фоновым изображением:
$position_x = get_theme_mod('background_position_x', get_theme_support('custom-background', 'default-position-x')); $position_y = get_theme_mod('background_position_y', get_theme_support('custom-background', 'default-position-y')); $size = get_theme_mod('background_size', get_theme_support('custom-background', 'default-size')); $repeat = get_theme_mod('background_repeat', get_theme_support('custom-background', 'default-repeat')); $attachment = get_theme_mod('background_attachment', get_theme_support('custom-background', 'default-attachment'));
По аналогии с фоновым изображением, получить фоновый цвет можно с помощью функции get_background_color(), а вывести — с помощью функции background_color().
Поиск: CMS • Web-разработка • WordPress • Функция • add_theme_support • the_custom_logo • has_custom_logo • Логотип • body_class • background_image • background_color • Background • Настройка