WP×Reactの開発環境構築方法

2024-06-26
ホーム WP×React WP×Reactの開発環境構築方法
クラウドソーシング「ランサーズ」
WP×React

この記事では、Localでローカルサイトを作成し、ReactアプリをWordPressのテーマとして統合する方法をステップバイステップで解説します。

ローカルサイトの作成

まずLocalを使用して、ローカルサイトを作成します。Localをダウンロードし、ローカル環境にWordPressサイトを立ち上げてください。

Reactアプリの作成

次に、Reactのフォルダを生成し、TypeScriptを組み込んだReactアプリを作成します。詳細は以下のリンクを参照してください:

React(TypeScript)とchakra-uiの環境構築方法

最初のapp構築の段階からTypeScriptを組み込み、作成したディレクトリに移動することを忘れないでください。この手順を忘れると、他のライブラリをインストールする際に依存関係が不適切になり、不要なnode_modulesなどがインストールされてしまいます。

axiosのインストール

TypeScriptプロジェクトでaxiosを使用する場合、axiosの型定義ファイルをインストールする必要があります。以下の手順に従ってください。

ステップ1: axiosとその型定義ファイルのインストール

  1. axiosのインストール
    //npmの場合
    npm install axios
    //yarnの場合
    yarn add axios
  2. 型定義ファイルのインストール
    //npmの場合
    npm install @types/axios
    //yarnの場合
    yarn add @types/axios

ステップ2: 型定義ファイルの確認と使用

Reactコンポーネントを以下のように修正します。URLは適切に自身のURLに変更してください。

import React, { useEffect, useState } from 'react';
import axios from 'axios';
interface Post {
id: number;
title: {
rendered: string;
};
}

function App() {
const [posts, setPosts] = useState([]);

useEffect(() => {
axios.get('http://your-local-site.local/wp-json/wp/v2/posts')
.then(response => {
setPosts(response.data);
})
.catch(error => {
console.error('There was an error fetching the posts!', error);
});
}, []);

return (

WordPress Posts

    {posts.map(post => (
  • {post.title.rendered}
  • ))}
); } export default App;

ステップ3: 型定義の問題が解決しない場合

もし依然としてエラーが発生する場合は、以下を確認してください。

  1. プロジェクトの再ビルド
    npm run build
  2. VSCodeの再起動

    VSCodeを再起動して型定義が正しく認識されるようにします。

Reactアプリのビルド

二つの方法があります。テーマと統合する方法とプラグインで統合する方法です。

テーマと統合する方法

ローカル環境でReactとWordPressを統合し、ローカルで開発を行う場合の手順について詳しく説明します。ここでは、ReactアプリをWordPressのテーマとして統合し、ローカル環境で動作させる方法を紹介します。

WordPressテーマへの統合

ステップ1: Reactアプリのビルド

まず、Reactアプリをビルドして、静的ファイルを生成します。

//npmの場合
npm run build
//yarnの場合
yarn build

このコマンドを実行すると、buildフォルダが生成され、その中に最適化された静的ファイルが含まれます。

ステップ2: 新しいテーマフォルダの作成

LocalでセットアップしたWordPressサイトのディレクトリに移動し、wp-content/themesディレクトリ内に新しいテーマフォルダを作成します。例えば、my-react-themeという名前にします。

ステップ3: テーマファイルの準備

my-react-themeフォルダ内に、style.cssindex.phpfunctions.phpファイルを作成します。

ステップ4: Reactビルドファイルのコピー

create-react-appで生成されたbuildフォルダの中身(index.htmlstaticフォルダなど)を、my-react-themeフォルダ内にコピーします。

ステップ5: functions.phpの編集

以下のコードを追加します。

<?php
    function get_react_build_file($type) {
        $manifest = file_get_contents(get_template_directory() . '/build/asset-manifest.json');
        $manifest = json_decode($manifest, true);
        return get_template_directory_uri() . '/build/' . $manifest['files'][$type];
    }
?>

ステップ6: index.phpの編集

index.phpファイルを以下のように編集して、Reactのビルドファイルを読み込みます。

<!DOCTYPE html>
<html <?php language_attributes(); ?>>



<?php bloginfo('name'); ?>




>

ステップ7: style.cssの編集

style.cssファイルを以下のように編集して、WordPressテーマとして認識されるようにします。

/*
Theme Name: My React Theme
Theme URI: http://example.com/my-react-theme
Author: Your Name
Author URI: http://example.com
Description: A WordPress theme that integrates a React application.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-react-theme
*/

ステップ8: テーマの有効化

LocalのWordPress管理画面にログインし、「外観」 > 「テーマ」で新しいテーマ「My React Theme」を有効化します。

まとめ

これで、ローカル環境でReactアプリとWordPressを統合した状態で開発を進めることができます。WordPress REST APIを使用してデータを取得し、Reactコンポーネントで表示するなど、リアルタイムで変更を反映させながら開発が可能です。

React側でエラーが出る際は

依存関係のアンインストールや再インストールを行う際には、yarn start(開発サーバー)が実行中でない方が良いです。開発サーバーが実行中だと、ファイルがロックされている場合があり、依存関係の変更が正しく反映されない可能性があります。

以下の手順で進めてください:

  1. 開発サーバーの停止

    現在のターミナルで開発サーバーを停止します。通常は、Ctrl + Cを押すことで停止できます。

  2. 再度yarn startを実行

    再度yarn start(開発サーバー)を実行してエラーが解消されるか確認します。

Web制作のご依頼・ご相談など、お気軽にご連絡ください。

お問い合わせ