Мощный все-в-одном дистрибутив, оптимизированный для создания быстрых, безопасных и масштабируемых сайтов для крупного бизнеса, масс медиа и даже государственных организаций.
Для случаев, когда важно все!
WP BOX включает множество заготовок для быстрого старта и успеха в следующем:



Заходите прочитать записи в блоге, в которых публикуются гайды, примеры и детальные пояснения относящиеся к использованию WP BOX.
Используйте кодовую базу WP BOX, которая создана с учетом официальных рекомендаций для разработчиков WordPress для поддержания непревзойденной производительности и гибкости при разработке индивидуальных решений.
<?php
namespace WPBOX\PostType;
class Product implements IPostType
{
private static string $post_type_name = 'Product';
private static string $post_type_slug = 'product';
public function __construct()
{
add_action('init', [ $this, 'register' ]);
add_action('init', [ $this, 'register_post_meta' ]);
add_filter('init', [ $this, 'post_type_template' ]);
add_action('generate_rewrite_rules', [ $this, 'rewrite_rules' ], 999);
}
Серверный код WP BOX включает в себя множество классов и интерфейсов для взаимодействия с нативными сущностями WordPress, таким как Post, Page, User.
В бэкенд логику также добавлены различные классы для автоматического подключения зависимостей, в том числе для Gutenberg блоков, настройки REST API, мультиязычности и многое другое.
WP BOX тема включает десятки индивидуальных блоков, которые можно использовать для обучения, создания собственных блоков или использовать их как есть — Хлебные Крошки, Галерея, Закрепленные Меню, Изображения, Кнопки и Попапы.
Кроме того, в тему добавлено все необходимо для компиляции и сборки. Просто добавляйте свои скрипты и другие ресурсы в правильные папки и они будут минифицированы, оптимизированы и автоматически подключены только если используются на странице.
registerBlockType( metadata, {
edit: BlockEdit,
save: BlockSave,
} );
function BlockEdit( props ) {
const {
isSelected,
clientId,
attributes: {
bgColor,
uniqueId,
},
setAttributes,
context: { postType: postTypeSlug },
} = props;
useEffect( () => {
if ( uniqueId === 'section-id' ) {
setAttributes( { uniqueId: clientId } );
}
}, [ clientId, uniqueId, setAttributes ] );
@layer components {
.wpbox-button {
@apply block whitespace-nowrap max-w-fit cursor-pointer text-theme-link hover:text-theme-hover border-2 rounded-md border-theme-link px-4 py-3.5 no-underline hover:bg-theme-bg-hover;
}
.wpbox-modal {
@apply bg-theme-modal backdrop-blur z-40 hidden fixed left-0 top-11 md:top-14 w-full h-full justify-center items-center text-theme-base box-border;
.wpbox-modal-inner {
@apply bg-theme-light-gray max-w-2xl md:max-w-none w-full md:w-600 p-4 md:p-8 rounded-xl flex *:gap-4 *:basis-full flex-wrap relative space-y-6 overflow-y-auto max-h-full;
}
}
Tailwind CSS позволяет поддерживать файл стилей небольшим и автоматически удаляет неиспользуемые стили. Чтобы снизить количество копированных классов на элементов WP BOX оборачивает атомарные элементы в собственные utility классы.
Получившиеся Tailwind компоненты, такие как .wpbox-button затем можно использовать в разных блоках, которые должны выглядеть одинаково, но иметь разный функционал. Например, кнопка-ссылка и кнопка которая взаимодействует с бэкендом.
Узнайте об изменениях в проекте.