В этой статье я покажу вам, ребята, как создать приложение React в качестве плагина Wordpress и, кроме того, как передать данные из PHP/Wordpress в ваше приложение React.

Вы можете просмотреть этот проект в Github здесь: https://github.com/wbaxterh/ReactWithWP

Начать довольно просто — создайте каталог /yourplugin с файлом PHP имени вашего плагина (yourplugin.php) следующим образом:

<?php
/**
* Plugin.
* @package reactplug
* @wordpress-plugin
* Plugin Name:     React With WP Plugin
* Description:     ReactJS plugin for Wordpress
* Author:          Wes Huber
* Author URL:      https://weshuber.com
* Version:         1.0
*/
?>

Это основной синтаксис плагина Wordpress. Теперь давайте создадим наше приложение ReactApp внутри этого плагина. Если вы работаете локально, как я — просто откройте каталог плагина с помощью VSCode.

Откройте терминал и введите команду:

npm init

Выполните шаги в терминале, и он создаст для вас файл package.json.

Теперь установите скрипты WP из пакета wp-element от Wordpress.org

npm install @wordpress/scripts --save-dev

Затем я также добавляю скрипт сборки в файл package.json.

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

Нам также нужно создать совместимый с Wordpress файл webpack.config, например:

const defaults = require('@wordpress/scripts/config/webpack.config');
module.exports = {
  ...defaults,
    externals: {
      react: 'React',
      'react-dom': 'ReactDOM',
    },
};

Затем я также создаю файл style.css — вы можете пока оставить его пустым. Если вы пропустите это, обязательно удалите импорт в следующем блоке кода.

Теперь мы можем попасть в само приложение React. Создайте новую папку в каталоге вашего плагина с именем /src

В папке src создайте файл index.js следующим образом:

const { render } = wp.element; 
import App from './App';
import './style.css';
if (document.getElementById('my-react-app')) {
render(<App />, document.getElementById('my-react-app'));
}

Затем создайте еще один файл с именем App.js (основной компонент вашего приложения), и для этого примера мы напечатаем простой «Hello World».

const App = () => {
return (
<div class="container">
<h2>Hello World From React App {data.email}</h2>
</div>
);
};
export default App;

Хорошо — теперь, когда наше приложение React настроено, давайте вернемся к PHP-файлу нашего плагина и добавим шорткод для отображения приложения.

Мы также используем функции wp_get_current_user() и wp_localize_sript() для получения и передачи электронной почты вошедшего в систему пользователя в наше приложение.

Теперь добавим дополнительный код для получения и сохранения информации о пользователе в нашем файле App.js.

Затем в вашем терминале запустите

npm run build

Если это сработало — тогда папка сборки должна была быть создана в каталоге вашего плагина. Это скомпилированный код, необходимый для запуска вашего приложения.

Теперь активируйте свой плагин и добавьте свой шорткод на страницу или запись и посмотрите, работает ли он!

Это сработало для меня! Вы также можете увидеть, как возвращается моя электронная почта пользователя.

Спасибо за чтение — дайте мне знать ваши мысли. Это было вдохновлено тем, что я недавно сделал большой проект, в котором использовалось приложение React в качестве плагина. Это также в основном основано на другой статье здесь: https://javascript.plainenglish.io/how-to-add-a-react-app-to-wordpress-pages-61aee723d607, которая мне очень помогла!