Помогите разобраться в underscores
-
Всем привет
Я делаю тему, и, как водится, нифига в этом не понимаю. Изучил массу туториалов и читаю кодекс каждый день, разбираюсь с функциями и тегами шаблонов. Тем не менее, остается множество вопросов, т.к. моя тема подразумевает возможность кастомизации и различных вариантов оформления шапки, футера и т.п.
Делаю тему на основе underscores.
Вопросы пока сумбурные, не обращайте внимания, целостности картины пока нет.
1. Functions.php
Есть ли какой то минимально необходимый набор функций, которые должны быть включены в этот файл? В underscores в этом файле уже были функции, к сожалению я не понимаю, что они делают и почему описаны именно так. К примеру, открываю functions Авады — там совсем по-другому все начинается и заканчивается, почему тогда в underscores включили функции, которые не включили в Аваду? Ведь если underscores стартовая тема, то она должна включать некие необходимые функции для любой темы.2. Почему запрещены hard-coded ссылки? Например, чтобы подключить шрифты к тебе, мне пришлось фигачить в functions вот такой код:
/** * ADDING FONTS */ function theme_slug_fonts_url() { $fonts_url = ''; /* Translators: If there are characters in your language that are not * supported by Raleway, translate this to 'off'. Do not translate * into your own language. */ $raleway = _x( 'on', 'Raleway font: on or off', 'theme-slug' ); /* Translators: If there are characters in your language that are not * supported by Montserrat, translate this to 'off'. Do not translate * into your own language. */ $montserrat = _x( 'on', 'Montserrat font: on or off', 'theme-slug' ); if ( 'off' !== $raleway || 'off' !== $montserrat ) { $font_families = array(); if ( 'off' !== $raleway ) { $font_families[] = 'Raleway:300,400,700,800,900'; } if ( 'off' !== $montserrat ) { $font_families[] = 'Montserrat:400,700'; } $query_args = array( 'family' => urlencode( implode( '|', $font_families ) ), 'subset' => urlencode( 'latin,latin-ext' ), ); $fonts_url = add_query_arg( $query_args, '//fonts.googleapis.com/css' ); } return $fonts_url; } function theme_slug_scripts_styles() { wp_enqueue_style( 'theme-slug-fonts', theme_slug_fonts_url(), array(), null ); } add_action( 'wp_enqueue_scripts', 'theme_slug_scripts_styles' );
Громоздко, как по мне, особенно в сравнении с обычной ссылкой в head. Как объясняет автор этого кода на themeshaper, такой способ будет наиболее подходящим, если тема планируется для паблика. Почему?
3. Кастомизация
Я хочу, чтобы пользователь могли выбрать варианты header, включать/отключать некоторые его блоки, менять стиль скролла и некоторые css стили. Как лучше это реализовать? Написать плагин с уникальным интерфейсом или подключить эти опции в стандартный кастомизатор WP (посредством functions.php) ?А аваде реализован такой подход
if( ! $sidebar_exists ) { $content_css = 'width:100%'; $sidebar_css = 'display:none'; $content_class= 'full-width'; $sidebar_exists = false;
Я понял, что если сайдбара не существует, то в css задаем content(?) width: 100%. ну и т.д. Вопрос: что такое $sidebar? Эта переменная где то должна быть описана, чтобы движок понял, что это сайдбар, и вообще, если сайдбаров много? Может это просто опция в кастомизаторе авады… Аналогичный вопрос касательно $content.
Воообще, если бы вы зяглянули в шаблоны мегапопулярной (и мегауродливой при этом) авады — вы бы ужаснулись. Я верстал шаблоны для разных систем, но такого кошмара не встречал НИГДЕ. Я уже ничего не говорю о php в шаблонах, но когда стили прописывают прямо там, в <style> в зависимости от условия…это жесть.
4. Виджеты
Вот как в functions.php прописан виджет/** * Register widget area. * * @link http://codex.wordpress.org/Function_Reference/register_sidebar */ function fashiony_widgets_init() { register_sidebar( array( 'name' => __( 'Sidebar', 'fashiony' ), 'id' => 'sidebar-1', 'description' => '', 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h1 class="widget-title">', 'after_title' => '</h1>', ) ); } add_action( 'widgets_init', 'fashiony_widgets_init' );
Мне надо вывести возле каждого поста его превью в виджете Recent Posts, ну вот как мне это сделать, когда ни шаблона, ни даже банальной html я не вижу. Куда вставлять это превью? И как его вставить? Просто написать
<?php get_the_post_thambnail('my_custom_size_thumb_name'); ?>
?Вообщем, у меня серьезные проблемы с пониманием методик реализации простых задач.
- Тема «Помогите разобраться в underscores» закрыта для новых ответов.