WordPress上に、PHPで簡単なウェブアプリを作成する

「WordPress上にウェブアプリを作れないかな～」と考えていたところ、PHPで簡単に作れそうだったので挑戦してみました。

##対象者

- HTML・CSS・PHPの基礎を理解している人
- WordPressがどのような仕組みで動いているのか、ざっくりと理解できている人
- WordPressで、すでにブログを運営している人
- WordPressを使って、ウェブアプリを作ってみたい人

<br>なお、今回の記事を書くにあたり、こちらの本でPHPとWordPressの仕組みを勉強しました。

- WordPressユーザーのためのPHP入門 はじめから、ていねいに。

<br>「PHP以外の言語でコードを書きたい！」という人もいるかもしれませんが、WordPressがPHPをベースとして作成されているため、ある程度の技術が必要になります。
(私は技術力がないので、あきらめました。)

##成果物の解説

成果物は<b>[こちら](https://corgi-komugi.com/php-test/)</b>になります。

|[<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/522259/49fe6c84-209a-b24e-e177-fd0b6843782f.png" width="480">](https://corgi-komugi.com/php-test/)|
|:-:|

##開発環境
今回のウェブアプリは、以下の環境で作成しました。

- WordPress 5.8.1<br>　Cocoon childのテーマを使用
- ConoHa WING ベーシック(レンタルサーバー)


##作成手順
###1.WordPressに記事を作成する

WordPress管理画面で、投稿 → 新規追加 で、いつもと同様に記事を作成します。

<!-- wp:image {"id":1406,"width":476,"height":199,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full is-resized"><img src="https://corgi-komugi.com/wp-content/uploads/2021/09/2021-09-10_11h31_31.png" alt="WordPressメイン画面" class="wp-image-1406" width="476" height="199"/></figure>
<!-- /wp:image -->

記事の編集画面で、投稿の追加設定から、「URLスラッグ」を設定します。

<!-- wp:image {"id":1407,"width":512,"height":232,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large is-resized"><img src="https://corgi-komugi.com/wp-content/uploads/2021/09/2021-09-10_11h29_38-1024x463.png" alt="WordPress記事編集画面" class="wp-image-1407" width="512" height="232"/></figure>
<!-- /wp:image -->

また、SEOタイトル・記事カテゴリ・アイキャッチ画像を、任意で追加します。

コンテンツ編集画面(左上の枠)には、何も記載しなくてよいです。

<br>また、問題ないかもしれませんが、アイキャッチ画像を設定した場合は、私はこちらのカスタムCSSを追加し、コンテンツ内でアイキャッチ画像が表示されないようにしています。

```
.eye-catch { display: none; }
```

###2.サーバー内にphpファイルを作成する

ConoHa WINGにログインし、ファイルマネージャーをクリックします。

<!-- wp:image {"id":1409,"width":512,"height":231,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large is-resized"><img src="https://corgi-komugi.com/wp-content/uploads/2021/09/image-1024x462.png" alt="ConoHa管理画面" class="wp-image-1409" width="512" height="231"/></figure>
<!-- /wp:image -->

ファイルマネージャー内の「wp-content > themes > cocoon-child」のフォルダへ移動し、single-post-[URLスラッグ].phpというファイルを作成します。

URLスラッグは、手順1でwordpress上で設定したものです。

<!-- wp:image {"id":1410,"width":512,"height":231,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image size-large is-resized"><img src="https://corgi-komugi.com/wp-content/uploads/2021/09/image-1-1024x462.png" alt="ConoHaファイルマネージャー" class="wp-image-1410" width="512" height="231"/></figure>
<!-- /wp:image -->

###3.phpファイルにコードを書く

手順2で作成したファイルにコードを書きます。

今回のコードは次の通りです。<br>(慣れていないので、コードが汚い点はご了承ください。)

```
<?php if ( !defined( 'ABSPATH' ) ) exit;
if (!is_amp()) {
   get_header();
 } else {
   get_template_part('tmp/amp-header');
 }
?>

<!-- 入力フォーム -->
<h2>BMI計算アプリ</h2>
<p><br></p>
<form name="" method="post">
	<ul>
		<li>
			<p>身長(cm)</p>
			<input type="number" name="height" size="8" value="<?php echo $_POST["height"] ?>">	
			<p><br></p>
		</li>
		<li>
			<p>体重(kg)</p>
			<input type="number" name="weight" size="8" value="<?php echo $_POST["weight"]?>">
			<p><br></p>
		</li>
	</ul>
	<div class="wp-block-button has-custom-width wp-block-button__width-50 is-style-fill">
		<table>
			<tr>
				<input type="submit" name="cal_bottom" value="BMIを計算" style="border-radius:7px">
			</tr>
		</table>
	</div>
	<p><br></p>
</form>

<?php
if(isset($_POST["save"])){
    $height = htmlspecialchars($_POST["height"], ENT_QUOTES); 
    $weight = htmlspecialchars($_POST["weight"], ENT_QUOTES); 
}
				   
if ($_POST["height"] ==0){
	$BMI =0;
} else{
	$BMI = $_POST["weight"] / pow($_POST["height"]/100,2);
}
?>

<!-- 計算結果表示 -->
<h2>計算結果</h2>
<p></p>
<p>BMIは、<strong><?php echo round($BMI,2); ?></strong>です。<p>
<?php if ($BMI >= 30):?>
	<p><br>新型コロナウィルスに感染する確率が高いです。<p>
	<p>引用元：https://www.asahi.com/articles/ASP9876B9P98PTIL023.html</p>
<?php endif; ?>
<p><br></p>
<p>このウェブアプリの作成方法は、<a href="https://corgi-komugi.com/php-test-howto/">こちら</a>から確認できます。
</p>
<p><br></p>
<?php get_footer(); ?>
```

##まとめ
WordPress上でウェブアプリを作成すると、既存のStyle.css, hearer, footerが使用できるので、きれいなレイアウトで簡単にウェブアプリを作成することができました。

私のような初心者でも簡単に作成できたので、興味があれば是非試してみてください！