How to Build WordPress Themes with React

创建基本的 WordPress 主题结构

创建基本的 WordPress 主题结构包括设置一系列文件和目录,WordPress 使用这些文件和目录将主题的样式、功能和布局应用到 WordPress 网站。

1.在你的网站运行环境中,访问站点的文件夹。导航到wp-content/themes Catalog.

2.给主题创建一个新文件夹。文件夹名称应该是唯一的且具有描述性——例如my-basic-themeThe

3.在主题的文件夹中,创建这些基本文件并将其留空:

图片[1]-如何使用 React 构建 WordPress 主题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

如果不使用 React,还必须创建下面这些文件。

  • header.php  — 包含站点的标头部分。
  • footer.php  — 包含网站的页脚部分。
  • sidebar.php  — 对于侧边栏部分,如果主题包含侧边栏。

Next, open thestyle.css 并将以下内容添加到文件顶部:

/*
Theme Name: My Basic Theme
Theme URI: http://example.com/my-basic-theme/
Author: Your Name
Author URI: http://example.com
Description: A basic WordPress theme.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: blog, custom-background
Text Domain: my-basic-theme
*/

这个代码片段是 WordPress 主题 style.css 文件的标题部分,包含主题名称、作者详细信息、版本和许可证等重要元数据。它有助于 WordPress 在仪表板中识别和显示主题,包括主题描述和分类标签。

将 React 整合到 WordPress 中

将 React 整合到 WordPress 主题中,就可以使用 React 基于组件的架构,在 WordPress 网站中构建动态的交互式用户界面。要集成 React,将会使用@wordpress/scripts 包The

这是一个专为 WordPress 开发定制的可重用脚本集合。WordPress 提供它是为了简化配置和构建过程,尤其是在 WordPress 主题和插件中集成 React 等现代 JavaScript 工作流时。工具包封装了常用任务,使在 WordPress 生态系统中使用 JavaScript 进行开发变得更加容易。

图片[2]-如何使用 React 构建 WordPress 主题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

调整你的主题

现在已经掌握了 WordPress 主题的基本结构,可以对主题进行调整。

1.在主题目录下,将以下代码粘贴到 functions.php Documentation:

<?php
function my_react_theme_scripts() {
    wp_enqueue_script('my-react-theme-app', get_template_directory_uri() . '/build/index.js', array('wp-element'), '1.0.0', true);
    wp_enqueue_style('my-react-theme-style', get_stylesheet_uri());
}

add_action('wp_enqueue_scripts', 'my_react_theme_scripts');

function.php文件 将 React 与你的 WordPress 主题整合。它使用wp_enqueue_script respond in singingwp_enqueue_style 功能将 JavaScript 和级联样式表 ( CSS ) 文件添加到您的主题。

WordPresswp_enqueue_script 函数有几个参数:

  • 句柄名称 ( 'my-react-theme-app'),唯一标识脚本
  • 脚本文件的路径
  • 依赖项数组array('wp-element'),表示脚本依赖于 WordPress 的 React 包装器('wp-element')The
  • 版本号('1.0.0')
  • placementtrue,指定脚本应加载到 HTML 文档的页脚中以提高页面加载性能

ought towp_enqueue_style 函数采用以下参数:

  • 句柄名称'my-react-theme-style',唯一标识样式表
  • source ,返回主题主样式表 ( style.cssget_stylesheet_uri() )的 URL并确保应用主题的样式
  • ought toadd_action 元素,将自定义函数挂钩  'my_react_theme_scripts' 到特定操作 ( 'wp_enqueue_scripts')。这可以确保当 WordPress 准备渲染页面时正确加载 JavaScript 和 CSS。
图片[3]-如何使用 React 构建 WordPress 主题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

这段代码可确保 React 应用程序的已编译 JavaScript 文件(位于 /build/index.js 中)和主题的主样式表与主题一起加载。

/build 目录通常 来自使用webpackcreate-react-app 等工具编译 React 应用程序,这些工具会将 React 代码捆绑成可用于生产的、经过精简的 JavaScript 文件。

这种设置对于将 React 功能集成到 WordPress 主题中至关重要,可以在 WordPress 网站中实现动态的、类似应用程序的用户体验。

2.接下来,更新index.php文件的内容 :

<!DOCTYPE html>
<html no numeric noise key 1004>
<head>
    <meta charset="<?php bloginfo('charset'); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?php wp_head(); ?>
</head>
<body no numeric noise key 1001>
    <div id="app"></div>
    <?php wp_footer(); ?>
</body>
</html>

index.php 文件中的代码定义了 WordPress 主题的基本 HTML 结构,包括供 WordPress 插入必要页眉(wp_head)和页脚(wp_footer)的钩子,以及一个带有 ID app 的 div,其中安装了 React 应用程序。

使用 @wordpress/scripts 设置 React

1.打开终端并导航到主题的目录:cd wp-content/themes/my-basic

cd wp-content/themes/my-basic-theme

2.初始化一个新的 Node.js 项目:

npm init -y

3.安装@wordpress/scriptsfurthermore@wordpress/element::

npm install @wordpress/scripts @wordpress/element --save-dev

Attention:这里通常需要几分钟的时间,耐心等待就好。

4.修改package.json 文件以包含start anbuild 脚本:

"scripts": {
  "start": "wp-scripts start",
  "build": "wp-scripts build"
},

@wordpress/scripts “用于以热重载方式启动开发服务器以进行开发(启动),并将 React 应用程序编译成静态资产以用于生产(构建)。

图片[4]-如何使用 React 构建 WordPress 主题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

创建一个反应项目

1. 为主题中的 React 源文件创建一个名为src的新目录。

2. Insrc 文件夹中,创建两个新文件:index.js respond in singingApp.jsThe

3.将以下代码放入index.js::

import { render } from '@wordpress/element';
import App from './App';
render(, document.getElementById('app'))

上面的代码render surname Cong@wordpress/element 组件导入函数App 。然后,它将App 组件安装到文档对象模型 (DOM)。

4.接下来,将此代码粘贴到App.js Documentation:

import { Component } from '@wordpress/element';
export default class App extends Component {
  render() {
    return (
      <div> 
        <h1>Hello, WordPress and React!</h1>
        {/* Your React components will go here */}
      </div>
);
    }
}

完成并激活主题

激活主题:

  1. utilizationnpm start运行开发服务器。
  2. 在 WordPress 控制面板中找到 “外观”>”主题”,找到你的主题并点击 “激活”,激活你的新主题。
  3. 确保 React 项目的构建过程配置正确,以输出到正确的主题目录,从而允许 WordPress 渲染 React 组件。
  4. 访问 WordPress 网站的前端,查看实时更改。
图片[5]-如何使用 React 构建 WordPress 主题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

为主题开发React组件

接下来,采用基于组件的方法,在 WordPress 主题中使用特定组件(如标题)扩展基本的 React 设置。

创建标题组件

在主题的 src 目录中,为标题组件创建一个新文件。为文件命名,如 Header.js,并添加以下代码:

import { Component } from '@wordpress/element';
class Header extends Component {
    render() {
        const { toggleTheme, darkTheme } = this.props;
        const headerStyle = {
            backgroundColor: darkTheme ? '#333' : '#EEE',
            color: darkTheme ? 'white' : '#333',
            padding: '10px 20px',
            display: 'flex',
            justifyContent: 'space-between',
            alignItems: 'center',
        };
        return (
            <header style="{headerStyle}">
                <div>My WP Theme</div>
                <button onclick="{toggleTheme}">{darkTheme ? 'Light Mode' : 'Dark Mode'}</button>
            </header>
        );
    }
}
export default Header;

这段代码使用”@wordpress/element “定义了一个标题组件,可根据 darkTheme 命题动态调整标题样式。它包含一个按钮,可通过调用作为道具传递的 toggleTheme 方法在浅色和深色主题之间切换。

在主题的 src 目录中,为页脚组件创建一个新文件。给它起个名字,例如 Footer.js,然后添加以下代码:

import { Component } from '@wordpress/element';
class Footer extends Component {
    render() {
        const { darkTheme } = this.props;
        const footerStyle = {
            backgroundColor: darkTheme ? '#333' : '#EEE',
            color: darkTheme ? 'white' : '#333',
            padding: '20px',
            textAlign: 'center',
        };
        return (
            <footer> style={footerStyle}>
                © {new Date().getFullYear()} My WP Theme
            </footer>
        );
    }
}
export default Footer;

这段代码定义了一个页脚组件,它根据 darkTheme 命题渲染具有动态样式的页脚,并显示当前年份。

更新App.js文件

要使用新的页眉和页脚,用以下代码替换 App.js 文件的内容:

import { Component } from '@wordpress/element';
import Header from './Header';
import Footer from './Footer';
export default class App extends Component {
    state = {
        darkTheme: true,
    };
    toggleTheme = () => {
        this.setState(prevState => ({
            darkTheme: !prevState.darkTheme,
        }));
    };
    render() {
        const { darkTheme } = this.state;
        return (
            <div>
                <header darktheme="{darkTheme}" toggletheme="{this.toggleTheme}" />
                <main style="{{" padding: '20px', background: darktheme ? '#282c34' : '#f5f5f5', color: 'white' 'black' }}>               
                </main>
                <footer darktheme="{darkTheme}" />
            </div>
        );
    }
}

开发构建过程会监控更改并重新编译代码,该过程应仍处于激活状态。最后一个模板版本应该与这个相似:

图片[6]-如何使用 React 构建 WordPress 主题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

如何在 React 中处理 WordPress 数据

将 WordPress 内容集成到 React 应用程序中,在 WordPress 强大的内容管理 功能和 React 的动态 UI 设计之间建立了无缝桥梁。这可以通过 WordPress REST API 实现。

To accessWordPress REST API,请通过更新永久链接设置来启用它。在 WordPress 管理仪表盘上,导航至"Settings"  > “永久链接”。选择“帖子名称”选项或“普通” 以外的任何选项 ,然后保存更改。

在主题的src目录中,创建一个名为Posts.js 的 新文件 并添加下面代码:

import { Component } from '@wordpress/element';
class Posts extends Component {
    state = {
        posts: [],
        isLoading: true,
        error: null,
    };
    componentDidMount() {
        fetch('http://127.0.0.1/wordpress_oop/wp-json/wp/v2/posts')
            .then(response => {
                if (!response.ok) {
                    throw new Error('Something went wrong');
                }
                return response.json();
            })
            .then(posts => this.setState({ posts, isLoading: false }))
            .catch(error => this.setState({ error, isLoading: false }));
    }
    render() {
        const { posts, isLoading, error } = this.state;
        if (error) {
            return <div>Error: {error.message}</div>;
        }
        if (isLoading) {
            return <div>Loading...</div>;
        }
        return (
            <div>
                {posts.map(post => (
                    <article key="{post.id}">
                        <h2 dangerouslysetinnerhtml="{{" __html: post.title.rendered }} />
                        <div dangerouslysetinnerhtml="{{" __html: post.excerpt.rendered }} />
                    </article>
                ))}
            </div>
        );
    }
}
export default Posts;

根据 WP 部署名称(即你安装 WP 的文件夹)的不同,fetch(‘http://127.0.0.1/wordpress_oop/wp-json/wp/v2/posts’) URL 可能略有不同。或者,也可以从 DevKinsta 面板获取网站主机名,然后添加后缀 /wp-json/wp/v2/posts。

帖子组件是这种集成的一个典型例子,它演示了使用 WordPress REST API 获取和管理 WordPress 数据(特别是帖子)的过程。

通过在组件的生命周期方法(componentDidMount)中发起网络请求,该组件可以高效地从 WordPress 网站获取帖子并将其存储在自己的状态中。这种方法强调了一种将 WordPress 数据(如页面或自定义帖子类型)动态整合到 React 组件中的模式。要使用新组件,用以下代码替换 App.js 文件的内容:

import { Component } from '@wordpress/element';
import Header from './Header';
import Footer from './Footer';
import Posts from './Posts'; // Import the Posts component

export default class App extends Component {
    state = {
        darkTheme: true,
    };
    toggleTheme = () => {
        this.setState(prevState => ({
            darkTheme: !prevState.darkTheme,
        }));
    };
    render() {
        const { darkTheme } = this.state;
        return (
            <div>
                <header darktheme="{darkTheme}" toggletheme="{this.toggleTheme}" />
                <main style="{{" padding: '20px', background: darktheme ? '#282c34' : '#f5f5f5', color: 'white' 'black' }}>
                    <posts /> {/* Render the Posts component */}
                </main>

                <footer darktheme="{darkTheme}" />
            </div>
        );
    }
}

现在可以查看主题的最新最终版本。除了页眉和页脚,它还包括一个动态内容区域,用于展示帖子。

图片[7]-如何使用 React 构建 WordPress 主题-光子波动网 | 专业WordPress修复服务,全球范围,快速响应

在 WordPress 项目中使用 React WordPress 主题

要将基于 React 的主题集成到 WordPress 项目中,首先要利用 @wordpress/scripts 等软件包将 React 代码转换为 WordPress 兼容的格式。该工具简化了构建过程,让你可以将 React 应用程序编译成 WordPress 可以启动的静态资产。

使用 @wordpress/scripts 提供的 npm 命令,构建主题非常简单。在主题目录下运行 npm run build,即可将 React 代码编译成静态 JavaScript 和 CSS 文件。

然后,将这些编译好的资产放入主题中的相应目录,确保 WordPress 可以正确加载和呈现 React 组件作为主题的一部分。集成完成后,就可以像激活其他主题一样激活 React WordPress 主题,立即为 WordPress 网站带来类似应用程序的现代用户体验。

summarize

通过使用 React 强大的 UI 功能构建主题并将其集成到 WordPress 中,可以释放创建灵活、高度交互且以用户为中心的 Web 体验。


Contact Us
Can't read the article? Contact us for free answers! Free help for personal, small business sites!
Tel: 020-2206-9892
QQ咨询:1025174874
(iii) E-mail: info@361sale.com
Working hours: Monday to Friday, 9:30-18:30, holidays off
© Reprint statement
This article was written by Harry
THE END
If you like it, support it.
kudos0 share (joys, benefits, privileges etc) with others
commentaries sofa-buying

Please log in to post a comment

    No comments