parfaitementweb/wordpress-starter-theme

此包已被弃用且不再维护。没有建议的替代包。

1.2.1 2019-12-17 13:53 UTC

This package is auto-updated.

Last update: 2024-01-07 12:49:11 UTC


README

此WordPress入门主题旨在考虑现代PHP开发实践。

此入门主题基于underscores.me文件结构,仅包含一套额外的可选工具,以简化您的开发。您仍然可以像其他任何基本WordPress主题一样开发您的主题。

主题包括以下内容

  • Composer
  • Laravel 视图 Blade
  • 控制器
  • Laravel Mix
  • 使用 ACF Blocks 的自定义 Gutenberg 块
  • Laravel 集合
  • 字符串助手
  • Tailwind CSS

Latest Version on Packagist Software License Total Downloads

安装

执行以下命令

cd wp-content/themes
composer create-project parfaitementweb/wordpress-starter-theme

cd yourtemplatename
npm install
npm run watch

# Build your assets for production using
# npm run production
# Read more about Laravel Mix on their official documentation.

控制器

默认的 WordPress 模板文件(如 index.php、page.php 等)现在是您的控制器。在它们中定义所有特定模板的逻辑。

如何使用

  1. WordPress 模板文件不应直接返回 HTML 或 PHP 代码。

  2. 您应该使用 $core = new Parfaitement\Core; 调用我们的核心库。这将实例化一个包含网站跨多个部分所需许多公共函数的对象。

  3. 使用 $core->render($view, $data) 方法返回您的 Laravel Blade$view 是视图的名称(不带 .blade.php 扩展名)。 $data 是您想要传递到视图的变量数组。

    视图存储在 resources/views 文件夹下。

$core 变量提供额外的功能

  • 使用 $core->$request 访问 Laravel HTTP 请求。例如,使用 $core->request->input('name') 获取输入。
  • 使用 $core->include_style()此模板仅 注入特定的 CSS 文件
  • 使用 $core->include_script()此模板仅 注入特定的 JS 文件

视图

Blade 视图 *.blade.php 存储在 resources/views 文件夹中,并使用 Laravel Blade 模板引擎解析。

资源

所有资源都存储在 resources/assets 文件夹中。通常如下所示

  • resources/assets/images
  • resources/assets/js
  • resources/assets/sass

资源使用 Laravel Mix 编译。Laravel Mix 是在 webpack 之上的一层干净的层,使 80% 的用例简单到令人发笑。

开箱即用,它包括

  • 最小化 & 压缩
  • 支持 ES2017、Vue 和热替换的 JS
  • CSS 预处理器。LESS、SASS、Stylus & PostCss
  • Browsersync
  • 缓存破坏(自动版本控制)

CSS 文件默认使用 POSTCSS 处理。

mix()

我们已在模板内添加了对mix()辅助函数的支持,用于缓存破坏。当你在控制器中使用$core->include_style()$core->include_script()时,你的脚本和样式将被自动缓存破坏。

从模板链接到资源

使用我们定制的asset()辅助函数来链接你的资源(图像、图标等)。

<img src="{{ asset('/images/logo.png') }}" />`

Tailwind CSS

本主题包含Tailwind CSS,这是一个预安装的实用CSS框架。你仍然可以从package.json依赖中移除它,并按你的喜好编辑CSS样式。

CSS 文件默认使用 POSTCSS 处理。

表单

可以通过这种方式处理自定义表单

在你的page.php

$validator = $core->validation->make(
    $core->request->input(),
    [
        'name' => 'required',
        // other rules
    ]
);

if ($validator->fails()) {
    $errors = $validator->errors();
}

$data = [
    'errors' => $errors
];
$core->render('page', $data);

在你的page.blade.php

    @if (isset($errors) && $errors->any())
        <div class="alert alert-danger" role="alert">
            @foreach ($errors->all() as $error)
                <p>{{$error}}</p>
            @endforeach
        </div>
    @endif

    <form action="{{ site_url() }}/wp-admin/admin-post.php" method="post">
        <?php wp_nonce_field('contact_form') ?>

        <input type="hidden" name="action" value="contact_form">
        <input type="text" name="name" placeholder="Your Name">

        <input type="submit" value="Submit">
    </form>

app/ContactForm/php

<?php

namespace App;

class ContactForm
{
    public function __construct()
    {
        add_action('admin_post_nopriv_contact_form', [$this, 'handle_contact_form']);
        add_action('admin_post_contact_form', [$this, 'handle_contact_form']);
    }

    function handle_contact_form()
    {
        if (wp_verify_nonce($_POST['_wpnonce'], 'contact_form')) {
            $redirect = add_query_arg('form', 'success', site_url('contact'));
            wp_redirect($redirect);
        }
    }
}

在自定义函数部分中添加以下内容到你的functions.php

$contactForm = new \App\ContactForm();

验证

我们的核心支持Laravel验证

辅助函数

以下是一个你可以在其主题的任何地方使用的附加辅助函数列表。

集合

我们添加了对Laravel集合的支持。

数组 & 字符串

你可以使用以下列出的任何数组 & 对象字符串 Laravel辅助函数:https://laravel.net.cn/docs/5.7/helpers

输出并终止

我们还添加了对著名的dd()("输出并终止")辅助函数的支持。此函数使用dump()输出变量,然后立即终止脚本执行(使用exit)。

自定义主题函数

所有放置在/app文件夹下的PHP类文件都将自动加载,并在你的主题文件中可访问。使用它们作为存储自定义逻辑的方便和可测试的位置。

<?php

namespace App;

class Custom
{
    public function get_articles()
    {
        return [
            'article' => 'foo',
            'title' => 'bar'
        ];
    }
}

?>

## Usage
$custom = new \App\Custom();
$articles = $custom->get_articles();

经典编辑器

Classic Editor插件包含在Composer依赖中。使用以下命令将其下载并安装到你的Wordpress默认插件文件夹中。

你仍需要在插件页面上手动激活该插件。

composer install

Gutenberg ACF块

本启动主题支持ACF块,以便轻松创建Gutenberg块。请阅读ACF块文档以了解如何进行操作。在此主题中,块在inc/acf-blocks.php文件中注册。块的视图从/resources/views/blocks文件夹渲染。

块视图不支持Laravel Blade语法。需要使用常规PHP。

更干净的WordPress

我们包含了一些类,以提供默认情况下更干净的WordPress版本。

你可以通过将主题文件夹根目录下的.env.example配置文件复制到.env并使用以下选项自定义其内容来启用或禁用其中任何一个

选项 默认 描述
DISABLE_COMMENTS 禁用所有注释功能
DISABLE_EMOJIS 禁用表情脚本
DISABLE_GENERATOR 删除生成器元标签
DISABLE_GUTENBERG_BLOCK 删除块库脚本
DISABLE_OEMBED 禁用oEmbed脚本
HIDE_FRONTEND_TOOLBAR 在前端隐藏管理员工具栏,并在“配置文件选项”页面隐藏选项。
HIDE_FRONTPAGE_ADMIN_ATTRS 在编辑首页时,在管理员中隐藏页面属性。
ADD_SLUG_BODY_CLASS 将当前别名添加到身体类列表中。