こんにちは、オイケです。
過去ブログの消費税10%対応プロジェクトの第1回目の記事では、WordPressのプラグインを使って、記事内の8%税込価格を10%税込価格に書き換えることができないかを調査しました。
残念ならが、そのような都合のいいプラグインは見つかりませんでした。
第2回の本記事では、
- Xserver内でWordPress関係のデータがどのような構造になっているか
- WordPressの記事データを操作する方法
について調査します。
過去ブログの消費税10%対応プロジェクトとは?
オイケのブログの記事内の税込価格を消費税10%増税後の税込価格に変更する環境を構築するプロジェクトです。
下の図を使って、具体的に説明します。
上図は、【Excelあり】お米を安く簡単に送れるヤマト便の運賃と送り方という記事の抜粋です。
ピンクで囲んだ箇所は、消費税8%の税込価格です。
この税込価格を、消費税10%の税込価格に、手作業では無く、自動的に変更したいのです。
Xserver内のフォルダー構造調査
上図は、Xserver内のWordPressのフォルダー構造とデータベースです。
Xserver内にあるWordPress関係は、大きく分けると、
- public_htmlフォルダー
- MySQLデータベース
の2つがあります。
public_htmlフォルダーの下には、
- wp-includes
- wp-admin
- wp-content
などがあります。
固定ページや投稿記事が参照している画像ファイルは、wp-contentフォルダー内にあります。
税込価格が記載されている記事データは、MySQLデータベースの中にあります。
記事データ内の税込価格を変更するためには、MySQLデータベースを操作する必要があるということが判りました。
MySQLデータベース内の記事データの所在
私は、MySQLの知識や、それ以前にデータベースの知識がありませんので、自分自身が理解しやすいように、MySQLデータベース内の記事データの所在をExcelと対比させてみると以下のとおりとなります。
Excel | MySQL | 名称 | 内容 |
シート | テーブル | wp_posts | 投稿記事および固定ページの集まり |
行 | レコード | ???? | 特定日時の投稿記事および固定ページ |
列 | カラム | post_content | 本文 |
上の表から、私がやりたいのは、
ということになります。
言い換えると、
- wp_posts以外のテーブルは無視
- post_content以外のフィールドも無視
しなければなりません。
ブログ超初心者の私の場合は、アクセスする必要の無いテーブルやフィールドにアクセスしてしまってデータベースを壊さないよう注意が必要です。
MySQLデータベースを操作する方法
MySQLデータベースを操作する初歩的な方法を調べたところ、以下の3つが見つかりました。
- WP-CLIでMySQLデータベースを操作する方法
- SQL文でMySQLデータベースを操作する方法
- phpMyAdminでMySQLデータベースを操作する方法
①WP-CLIでMySQLデータベースを操作する方法
上図は、WP-CLIでMySQLデータベースを操作するイメージ図です。
WP-CLIとは、WordPressを管理するためのコマンドラインインターフェースのことです。
通常、WordPressで、
- WordPressの更新
- テーマの更新
- プラグインの追加・更新
- 記事の作成・編集
などを行う場合、ブラウザからWordPressにログインして、マウスで選択したり、キーボード入力したりしますよね。
WP-CLIは、コマンドラインインターフェースなので、キーボードからWP-CLIコマンド入力して、WordPressを管理します。
このWP-CLIコマンドを使って、記事内の税込価格を抽出して、消費税10%価格を算出して、算出後の税込価格を記事に戻す方法を調査します。
WP-CLIを使う前準備
XserverでWP-CLIを使う前準備として以下の5つが必要になります。
- XserverのサーバーパネルでSSH設定をON
- Xserverのサーバーパネルで公開鍵認証用鍵とペアを生成
- 自分のパソコンにTera Termをインストール
- Tera TermでSSH認証
- XserverにWP-CLIをインストール
WP-CLIでできること
WP-CLIでは、
- WordPressの更新
- プラグインの更新
- 任意のPHPコード実行
- PHPファイルをロードして実行
- 記事の本文やメタの管理
その他多数のことができます。
詳細については、WordPress.org WP-CLI Commandsにコマンド一覧が記載されています。
WP-CLIで税込価格を変更するには?
以下の3つの処理を行うことで、記事内の税込価格を変更できるようです。
- wp post getコマンドで指定した記事の本文を抽出
- 何らかのプログラムで本文中の税込価格を消費税10%税込価格に変更
- wp post updateコマンドで記事の本文を更新
wp post get コマンドの具体的な使い方は、
です。
wp post update コマンドの具体的な使い方は、
です。
WP-CLIで税込価格を変更する課題
WP-CLIで税込価格を変更する際の大きな課題は、
です。
WP-CLIコマンド自体がPHPプログラムで作成されているようなので、本文中の税込価格を消費税10%税込価格に変更するプログラムについてもPHPでプログラムを作った方が相性がいいのではないかと思います。
但し、私にはPHPプログラムの知識が全く無いので、いちから勉強する必要があります。
とてつもなくハードルが高そうです。
②SQL文でMySQLデータベースを操作する方法
上図は、SQL文でMySQLデータベースを操作するイメージ図です。
SQLとは、MySQL、PostgreSQL、Oracle Databaseなどのデータベースを操作するプログラム言語です。
このSQLを使って、記事内の税込価格を抽出して、消費税10%価格を算出して、算出後の税込価格を記事に戻す方法を調査します。
SQL文でできること
SQL文では、大きく分けると以下の2つのことができます。
- データ操作(取得、更新、削除、挿入など)
- データ定義(テーブルの定義、作成、変更、削除など)
SQL文で税込価格を変更するには?
上図は、SQL文で税込価格を変更する処理のイメージです。
SELECT文の記述は、上図のとおりでいい線いっているのではないかと思います。
WHILE文とUPDATE文の記述がよく解りません。
一番の難関が本文内の税込価格を消費税10%の税込価格に変更する処理です。
SQL文で税込価格を変更する課題
SQLで税込価格を変更する課題は、大きく以下の2つがあると思っています。
- SELECT文、UPDATE文、WHILE文の動作理解
- 本文内の税込価格を消費税10%の税込価格に変更する処理のSQL記述
データベースからの読み出し、データベースへの書き込みに関する基礎を理解できていません。
私がイメージする処理は、
②変数に保管した記事本文中の税込価格を、消費税10%の税込価格に変更して別の変数に保管
③別の変数に保管された消費税10%の税込価格の記事本文を、データベースに書き戻す
課題2については、SQL文には文字列関数というのがあるようなので、文字列関数を使うことで記事本文内から税込価格を抽出できるのではないかと思っています。
③phpMyAdminでMySQLデータベースを操作する方法
上図は、Xserverにログイン後、phpMyAdminを起動して、記事(wp_posts)を表示した画面です。
post_contentのカラムに記事本文が保存されています。
phpMyAdminは、ブラウザ上で実行できるMySQLの管理ツールです。
先に説明した、SQL文でMySQLデータベースを操作する方法では、Tera Termの画面上で、SQL文を手入力してMySQLデータベースを操作しました。
しかし、phpMyAdminでもSQL文を手入力することができますが、phpMyAdminの画面上のボタンをクリックすることで視覚的にデータベースを操作することができます。
このphpMyAdminを使って、記事内の税込価格を抽出して、消費税10%価格を算出して、算出後の税込価格を記事に戻す方法を調査します。
phpMyAdminでできること
phpMyAdminではMySQLの管理に関し、以下のことができます。
- データベースの作成、削除、編集
- テーブルの作成、削除、編集
- カラムの追加、削除、編集
- インデックスのの作成、削除、編集
- データの挿入、削除、編集、検索、ソート
など。
phpMyAdminで税込価格を変更するには?
データベースやテーブルの作成、削除、カラムの追加、削除などはphpMyAdminの画面上で比較的簡単に実施できますが、税込価格を変更しようとすると、SQL文でプログラムを作成する必要があるようです。
まとめ
今回の私の調査では、WP-CLIコマンド単体では、記事本文中の税込価格を消費税10%税込価格に変更ことはできず、別途、PHPでプログラムを作成する必要があるようです。
但し、PHPを全く知らないので、PHPでプログラムを作成する場合のWP-CLIコマンドとのデータの受け渡しなど全般的なイメージがわきません。もっと、勉強が必要です。
SQLに関しては、SQL文でプログラムを作成すれば、記事本文中の税込価格を消費税10%税込価格に変更ことができそうです。
但し、
- 記事本文を変数に移す必要があるのか?
- 消費税10%税込価格に変更した記事本文をMySQLに書き戻す方法
などが解っておらず、もっと、勉強が必要です。
phpMyAdminで、記事本文中の税込価格を消費税10%税込価格に変更するためには、SQL文でプログラムを作成必要がありそうです。
つまり、SQL文でプログラムを作成すれば、記事本文中の税込価格を消費税10%税込価格に変更できそうだということが判りました。
しかし、まだ、XserverのMySQLのバックアップをとって、そのバックアップをXserverに復元したこともない私が、MySQLを操作するのは危険な気がします。
2019年10月1日の消費税増税前までには、SQL文のプログラムで記事本文中の税込価格を消費税10%税込価格に変更する環境を完成させたいと思います。
次回は、直接、MySQLを操作することなく、WordPressのテキストエディタを使って、記事本文中の税込価格を消費税10%税込価格に変更する方法を模索してみようと思います。
かなり邪道な方法になりそうです。
では、また。
コメント