Эта статья была спонсирована Beans . Спасибо за поддержку спонсоров, которые делают возможным использование SitePoint.
Если вы разрабатываете веб-сайты и темы с использованием WordPress, то понимаете, сколько на это требуется работы. Работа с нуля заставляет вас чувствовать, что вы пытаетесь изобрести велосипед, поэтому многие разработчики используют фреймворки для ускорения процесса. Поиск правильной структуры означает гораздо более легкий процесс разработки.
В этой статье будет описана новая структура разработки сайтов WordPress, которая называется Beans, и будет показано, как это полезно для создания сайтов WordPress без хлопот.
Представляя Бобы
Beans — это начальная тема / фреймворк, которая позволяет вам выбирать функции, необходимые для создания вашего веб-сайта, и обрезать части, без которых вы можете обойтись. Это легкий и быстрый, но дает вам большую гибкость.
Beans обеспечивает адаптивность содержимого и адаптацию изображений, автоматически создавая несколько версий изображений и предоставляя правильное изображение для устройства, на котором оно просматривается. Контент также реагирует на устройство, реструктурируя и реорганизуя его, чтобы наилучшим образом соответствовать дисплею устройства.
Давайте внимательнее посмотрим на некоторые аспекты фреймворка, прежде чем сравнивать его с ближайшим конкурентом, Genesis (который я освещал в SitePoint ).
SEO
Бобы построены, чтобы быть SEO-дружественными. Другие темы и рамки не являются семантическими, и они не созданы с учетом SEO. Beans создан для описания и семантики, что делает его оптимизированным для поисковых систем. Вам не нужно беспокоиться о том, соответствует ли ваш контент требованиям индексации поисковой системы, он встроен прямо в среду. Бобы легки и оптимизированы для мобильных устройств — две функции, которые жизненно важны для успеха SEO.
Детские темы
Бин использует и рекомендует использовать дочерние темы для создания пользовательских сайтов. Это означает, что при обновлении Beans ваш сайт не ломается. Команда Beans также предоставляет базовую дочернюю тему, чтобы помочь вам начать работу.
Дизайн сайта
С Бобами вы можете управлять структурой каждой страницы глобально или индивидуально. Вы можете установить макет сайта в разделе настройки администратора WordPress. Вы также можете управлять макетом на странице. Вы можете выбрать одну левую или правую боковую панель, две левой или правой боковой панели, одну боковую панель с обеих сторон или вообще не использовать боковую панель.
организация
Beans позволяет легко сохранять ваш код чистым и организованным. Если вы обнаружите, что пишете слишком много кода для конкретной страницы, вы можете взять его и поместить в шаблон страницы для этой страницы. Это избавляет вас от необходимости разбираться с путаницей кода в вашем файле functions.php
. Вы можете разместить конкретный код на высоко настраиваемых страницах.
Даже CSS легко обновлять и поддерживать. Вы можете использовать Меньше или CSS. Все хранится в файле style.css, расположенном в вашей дочерней теме. Это избавляет вас от необходимости копаться в основном файле CSS, чтобы найти искомую строку. Вы просто добавляете CSS, чтобы переопределить то, как что-то выглядит или как оно структурировано.
На будущее
Одна из причин, по которой Beans делает акцент на создании дочерних тем, заключается в том, что когда Beans обновляет свою основную тему, ваш сайт не будет поврежден. Возможно, вам придется обновить строку кода в вашей дочерней теме, но это все же лучше, чем закончить с неработающим сайтом.
Теперь давайте посмотрим, как Beans сравнивается с Genesis, его ближайшим конкурентом.
Бобы против генезис
Первый очевидный вопрос при рассмотрении Beans: как его подход сравнивается с Genesis? Я установил Beans и настроил сайт, чтобы сравнить его работу с сайтом на основе Genesis.
Внешность
Все темы Бытия выглядят одинаково. Это во многом зависит от разработчика, но многие сайты Genesis выглядят одинаково по внешнему виду и структуре. Beans предлагает гибкость для создания всего, что вы можете себе представить. Благодаря интеграции UIkit вы получаете доступ ко всем видам компонентов для создания современного, индивидуального веб-сайта для себя или своих клиентов. Сам UIkit может быть настроен так, чтобы вы выглядели так, как вам хочется, облегчая работу и создавая индивидуальный внешний вид.
Вес страницы
Beans также создает более легкие сайты, чем Genesis, поскольку вы вызываете на свой сайт только то, что вам нужно. Вы не используете скрипты и компоненты, которые вам не нужны, и вы не загружаете скрипты для этих элементов.
гибкость
В Beans вы можете удалять и отображать элементы на странице, что позволяет быстро и легко настраивать их. Это так же просто, как одна строка кода в вашем файле functions.php
.
У вас также есть гораздо больше гибкости и контроль над HTML сайта. Вы загружаете только нужную вам разметку. Вы можете использовать атрибуты UIkit HTML для стилизации и макета страниц. Большая разница с созданием сайтов Beans WordPress заключается в том, что у вас есть хуки до и после каждого бита HTML-разметки. Вы можете легко добавлять контент, позволяя перемещать элементы по мере необходимости.
скорость
Бобы быстрее в целом. Есть несколько причин, почему. Первая причина заключается в том, что все активы объединены в один файл. Кроме того, для каждой страницы вы загружаете только то, что вам нужно. Это означает, что вы не загружаете разметку на ненужные страницы. Все это контролируется с Бобами.
Другая причина, по которой Beans работает быстрее, заключается в том, что вы можете создавать довольно сложные сайты, не будучи зависимыми от реализации множества ресурсоемких плагинов для добавления функциональности. В сочетании с тем фактом, что Beans загружает только то, что нужно странице, и ничего лишнего, это делает его легким и быстрым решением для любого разработчика WordPress.
Интеграция UIkit
UIkit — это интерфейсная среда с открытым исходным кодом, встроенная в Beans, предназначенная для создания великолепных сайтов без раздувания. Вы загружаете только то, что необходимо для каждой страницы, то есть вы не загружаете скрипты и компоненты, которые вы не используете. Это делает ваш сайт привлекательным и молниеносным.
Я сделал это своим собственным разделом, потому что это большой для меня. Интеграция UIkit позволяет создавать любой тип макета, который вы хотите. Все, что вам нужно, это правильный CSS-класс для применения к элементу, такому как div, и он будет управлять структурой страницы. С ним легко работать, потому что он похож на фреймворки, о которых многие разработчики уже знают, например, Bootstrap. Вы можете загружать компоненты на лету, но только тогда, когда они вам нужны.
Интеграция UIkit позволяет добавлять классы для таких вещей, как выравнивание, без необходимости каждый раз писать специальный CSS-код. Например, на странице «О программе» я хотел центрировать заголовок. Вместо того, чтобы писать блок CSS для специального класса заголовка, я смог добавить вспомогательный класс, чтобы сделать это. Я использовал:
<h1 class="uk-text-center">About</h1>
Подобные классы можно добавлять поверх других классов Beans, что позволяет легко получить нужный макет без необходимости писать блок за блоком кода.
API полей
Еще одна особенность, реализованная Beans, — это Fields API. В настоящее время WordPress не имеет API полей. Если вы когда-либо пытались создать, организовать или изменить содержимое в бэкэнде, это может стать настоящей рутиной. Fields API предлагает ряд полей, которые можно использовать в бэкэнде WordPress. Если вы создаете полностью настраиваемый сайт WordPress, вы, вероятно, захотите добавить серверные опции и поля для конкретной информации о сайте.
Вы можете создавать поля опций, публиковать мета-поля и поля настройщика. Это все популярные функции, которые пользователи WordPress ищут при использовании качественной темы. Вы можете реализовать следующие типы полей:
Текст — поместите здесь одно слово.
Область текста — Вы бы разместили здесь абзац текста.
Выберите — выберите доступную опцию.
Флажок — флажок, который включит функцию.
Радио — текстовый или графический список радио.
Изображение — включить отдельное изображение или галерею изображений.
Ползунок — ползунок позволяет выбрать определенное значение в диапазоне.
Группа — группа полей.
Для реализации полей вы будете использовать admin_init
для всех 4 типов полей. Вы можете установить идентификатор поля и метку. Вы можете отобразить эти значения во beans_get_post_meta
, используя beans_get_post_meta
или другие тесно связанные хуки. Это дает вам возможность отображать любую информацию, которую вы хотите, как вам нравится, в вашей теме.
Настройщик
Все больше и больше пользователей WordPress ожидают, что настройщик вступит в игру при выборе параметров. Настройщик отображает живой внешний вид сайта, пока вы манипулируете значениями во внутреннем интерфейсе. Customizer — это просто набор параметров темы, отображаемых при просмотре живого сайта. Это избавляет вас от необходимости сохранять серверную часть, возвращаться и пересматривать свой выбор. Fields API позволяет полностью контролировать настройщик из внешнего интерфейса.
Бесплатный и открытый исходный код
Beans является 100% бесплатным и открытым исходным кодом. Существуют и другие фреймворки, которым не хватает функций, но вы все равно в конечном итоге платите за них. Помимо документации, они предоставляют полезные фрагменты кода и ссылки на код, которые помогут вам в этом.
Документация
Бины также хорошо документированы, с примерами для каждого компонента, показывающими, как реализовать каждую функцию. Вы начинаете с хорошей отправной точки, и оттуда небо — предел того, что вы можете построить.
Теперь мы посмотрим, как Beans сравнивается с Genesis, давайте подробнее рассмотрим работу с фреймворком.
Начиная
Начало работы с Бобами не может быть проще. Сначала посетите веб-сайт Beans и загрузите и установите инфраструктуру Beans. Затем вам нужно перейти в раздел « Детская тема » на их веб-сайте и загрузить дочернюю тему. Вернитесь на панель управления WordPress и установите дочернюю тему, убедившись, что базовая структура установлена. Вы должны загрузить базовую тему и установить ее перед установкой дочерней темы.
Прежде чем начать строить
Вы захотите покопаться в документации, чтобы ознакомиться с тем, как работает фреймворк. Есть несколько вещей, которые вы захотите просмотреть и использовать во время работы.
UIkit API — это набор компонентов, интегрированных в саму тему. У вас есть огромное количество вариантов настройки, которые предлагают большую гибкость.
Поймите, как работают дочерние темы и файловые структуры. Вам необходимо иметь базовые практические знания о том, как работают темы и дочерние темы, в том числе о том, что представляет собой каждый файл и его назначение. Это поможет вам понять, как изменить вашу тему. Эта экранная презентация SitePoint описывает основной процесс создания дочерней темы .
Beans HTML API — позволяет легко изменять макеты страниц. Вы можете изменить разметку так, как вам нужно, чтобы создать действительно собственную структуру для вашей темы.
Теперь, чтобы действительно начать работу
Перейдите к Admin > Appearance > Settings
чтобы установить параметры для инфраструктуры Beans. Когда вы создаете свой сайт, вы захотите включить режим разработки, если вы используете Less. Здесь есть и другие варианты, такие как возможность сбрасывать изображения и кэшированные скрипты, но мы пока оставим их в покое.
Вы можете использовать Less для перезаписи переменных UIKit или редактировать CSS напрямую. Какой бы метод вы ни выбрали, вам нужно включить или отключить альтернативный метод в файле functions.php
вашей дочерней темы. Все новые функции будут добавлены здесь.
В моем примере я собираюсь использовать CSS, поэтому я удалю следующий блок кода из файла functions.php
:
/* * Remove this action and callback function if you do not wish to use Less to style your site or overwrite UIkit variables. * If you are using Less, make sure to enable development mode via the Admin->Appearance->Settings option. Less will then be processed on the fly. */ add_action( 'beans_uikit_enqueue_scripts', 'beans_child_enqueue_uikit_assets' ); function beans_child_enqueue_uikit_assets() { beans_compiler_add_fragment( 'uikit', get_stylesheet_directory_uri() . '/style.less', 'less' ); }
Как работает дизайн вашего сайта
Beans упрощает настройку страниц. Вам не нужно добавлять скрипты на страницы и раздувать ваш сайт. Вы можете добавлять компоненты на страницы, используя комбинацию функций и систему структуры UIkit для построения макета.
На изображении выше вы можете увидеть типичный дизайн сайта, с которого вы начинаете. Это стиль по умолчанию, который вы ожидаете увидеть практически с любой стартовой темой. Однако настройки применяются через файл functions.php
, который позволяет вам делать довольно интересные вещи. Если я добавлю следующий код, макет изменится, и сайт перейдет в режим сетки.
// Enqueue the UIkit dynamic grid component. add_action( 'beans_uikit_enqueue_scripts', 'beans_child_enqueue_grid_uikit_assets' ); function beans_child_enqueue_grid_uikit_assets() { // Stop here if we are on a singular view. if ( is_singular() ) return; beans_uikit_enqueue_components( array( 'grid' ), 'add-ons' ); } // Display posts in a responsive dynamic grid. add_action( 'wp', 'beans_child_posts_grid' ); function beans_child_posts_grid() { // Stop here if we are on a singular view. if ( is_singular() ) return; // Add grid. beans_wrap_inner_markup( 'beans_content', 'beans_child_posts_grid', 'div', array( 'data-uk-grid' => '{gutter: 20}' ) ); beans_wrap_markup( 'beans_post', 'beans_child_post_grid_column', 'div', array( 'class' => 'uk-width-large-1-3 uk-width-medium-1-2' ) ); // Move the posts pagination after the new grid markup. beans_modify_action_hook( 'beans_posts_pagination', 'beans_child_posts_grid_after_markup' ); }
Вы можете увидеть, как это выглядит на скриншоте ниже:
Вы можете видеть на скриншоте, что на данный момент это выглядит не так красиво, но вы можете изменить структуру макета из файла functions.php
. Вы также можете убрать и изменить порядок элементов. Мне не нравится порядок содержимого внутри поста. В настоящее время сначала идет заголовок, затем мета, а затем изображение. Я хочу, чтобы изображение было первым, потому что читатели обычно больше реагируют на зрительные стимулы. Все, что мне нужно сделать, чтобы изменить это, добавить следующий код в мой файл functions.php
.
// Move the post image above the post title. beans_modify_action_hook( 'beans_post_image', 'beans_post_title_before_markup' );
Как вы можете видеть на скриншоте, этот небольшой кусочек кода сразу переместил изображение поста выше всего. Я также чувствую, что в макете сетки нет места для всей расширенной информации, поэтому я собираюсь удалить метаинформацию и категории. Вы делаете это, помещая следующий код в functions.php
:
// Remove the post meta categories. beans_remove_action( 'beans_post_meta_categories' ); // Remove the post meta. beans_remove_action( 'beans_post_meta' );
Настройка дизайна
Добавить элементы дизайна на ваш сайт очень просто. Если вы хотите, чтобы что-то отображалось только на определенной странице, вы создадите свою собственную функцию. Я добавил изображение обложки на домашнюю страницу детской темы. Я создал следующую функцию:
add_action( 'beans_header_after_markup', 'beans_child_home_add_cover' ); function beans_child_home_add_cover() { // Only apply to home page. if ( !is_home() ) return; ?> <div class="uk-cover-background uk-position-relative"> <img src="http://designpile.net/wp-content/uploads/2015/10/mountains-863474_1920-e1445350970446.jpg" width="" height="" alt="welcome mountains"> </div> <?php }
Код выше выглядит устрашающе, пока вы не сломаете его. Во-первых, вы добавляете действие, как в любом другом файле functions.php
. Затем вы указываете, что после разметки заголовка вы хотите создать функцию, которая добавляет изображение обложки на домашнюю страницу.
Затем вы рассказываете Бинам, что это за функция. Вы укажете, что это относится только к домашней странице. Это в основном проверяет, является ли текущая страница домашней страницей, и если да, то хотите ли вы добавить адаптивное изображение обложки.
Элементы div с применяемыми к ним классами uk относятся к интеграции UIkit, которую вы можете найти в разделе документации или на веб-сайте UIkit.
Как только вы обновите страницу, на скриншоте ниже вы увидите, что изображение обложки было размещено на главной странице сразу после разметки заголовка. Это помещает это перед содержанием публикации и боковой панелью. Вы создадите функцию, подобную приведенной выше, для каждого раздела любой пользовательской страницы, которую вы создаете.
Чрезмерные настройки
Одна вещь, которую вы хотите сделать, это принять к сведению создание большого количества настроек для каждой страницы. Если вы понимаете, что добавляете много настроек, таких как пользовательский макет, добавленные функции и т. Д., Вам лучше будет создать шаблон страницы. Вы создаете шаблон страницы, как обычно, используя именованный тег шаблона, но вам также необходимо добавить специальный код Beans. Пример кода ниже показывает добавление двух столбцов текста на странице about.
<?php /* Template Name: About */ ?> <?php add_action( 'beans_header_after_markup', 'beans_child_view_add_title' ); function beans_child_view_add_title() { ?> <div class="uk-container uk-container-center"> <h1 class="uk-text-center">About</h1> </div> <?php } add_action( 'beans_content_prepend_markup', 'beans_child_view_add_layout' ); function beans_child_view_add_layout() { ?><div class="uk-container uk-block"> <div class="uk-width-medium-1-2"> <h2>Our History</h2><p>No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. But who has any right to find fault with a man who chooses to enjoy a pleasure.</p> </div> <div class="uk-width-medium-1-2"> <h2>Our Mission</h2><p>To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?</p> </div> </div><?php } // When using page template, it is very important to load the document after the customizations. beans_load_document();
Обратите внимание на интеграцию разметки UIkit. Именно так вы строите структуру своего сайта. Делать это так, как я показываю выше, нормально для ограниченного числа случаев, но если вы загружаете большие объемы контента, такие как массив постов, вы захотите использовать хуки, которые Бин предоставляет в своей документации.
Хуки Beans позволяют вам связываться со структурой WordPress, где бы вы ни указывали. Например, пример кода:
do_action ( 'beans_after_posts_loop' )
инициирует вашу команду после списков сообщений, которые отображаются. То, что вы могли бы здесь разместить, было бы нумерацией страниц. Если вы хотите добавить панировочные сухари, вы можете использовать:
do_action ( 'beans_before_posts_loop' )
Вывод
Вам может потребоваться короткое время, чтобы ознакомиться с платформой Beans, но как только вы это сделаете, вы сможете создать сайт с индивидуальными настройками за долю времени, которую вы обычно делаете. Вы можете разрабатывать собственные макеты для каждой страницы, сохраняя при этом легкость всего сайта.
По сравнению с платформой Genesis вы можете делать с Beans все, что вы можете делать с Genesis, но у вас гораздо больше возможностей для структуры, дизайна и настройки без необходимости разбираться с существующим кодом или другими плагинами.
Заинтересованы? Отправляйся сюда, чтобы начать работу с Бобами сегодня.