WordPressデータベースへの究極のガイド
公開: 2022-02-09基本的に、WordPressはCMS(コンテンツ管理システム)です。 コンテンツを管理するには、コンテンツを保存できる必要があります。 WordPressは、フォルダーとファイル、およびデータベースを介してこれを行います。 以前、WordPressファイルシステムについては別の記事で説明しました。 今回はデータベースに焦点を当てます。
この記事では、WordPressデータベース、その構造、および各フィールドがどのように機能するかを見ていきます。 MySQLに関する簡単な歴史のレッスンも含まれています。 ヒント–MySQLのMyはそれがあなたのものであるという意味ではありません。 私は実在の人物ですが、誰ですか? –読み続けて調べてください。
目次
- SQL、MySQL、MariaDBの(非常に)簡単な歴史
- WordPressデータベースにアクセスする方法
- phpMyAdmin
- Plesk / cPanel
- SSH / MySQL/MariaDBクライアント
- WordPressプラグイン
- WordPressデータベース構造
- テーブル構造
- wp_commentmeta
- wp_comments
- wp_links
- wp_options
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_taxonomy
- wp_usermeta
- wp_users
- テーブル構造
SQL、MySQL、MariaDBの(非常に)簡単な歴史
WordPressはMySQLと呼ばれるRDBMSを使用しています。 技術的にはMySQLベースであるため、MySQLの代わりにMariaDBが使用されることが増えています。 SQLはStructuredQueryLanguageの略で、データベース自体ではなく、データベースとの対話に使用する言語です。
今日私たちが知っているように、MySQLはインターネットの成長に重要な役割を果たしてきました。 MicrosoftとOracleが提供する製品の代替として1995年に最初に導入され、すぐにRDBMSのゴールデンスタンダードになりました。
MySQLの歴史はカラフルで、Sun Microsystems、次にOracleに買収されました(OracleはSun MicrosystemsとMySQLを買収しました)。
OracleによるMySQLの買収に応えて、MySQLの最初の作成者であるMonty Wideniusは、MySQLをMariaDBにフォークしました。これは、娘のMariaにちなんで名付けられました。 (興味深いことに、MySQLはMontyのもう1人の娘であるMyにちなんで名付けられました)。 時間の経過とともに、MariaDBとMySQLの違いが生まれました。 ただし、WordPressデータベースを含む多くのシナリオでは、この2つは互換性があります。
実際、多くの場合、MariaDBはMySQLのドロップイン代替品と見なされています。 これは、MySQLをアンインストールし、代わりにMariaDBをインストールして、何も変更されていないかのように作業を続行できることを意味します。 そうは言っても、MariaDBは状況によってはパフォーマンスを向上させることができ、ストレージエンジンなどとの幅広い互換性も提供します。
MySQLは無料のままであり、デュアルライセンスシステムでリリースされることに注意することが重要です。 多くの場合、MySQLは、MySQLまたはMariaDBのいずれかであるデータベースを参照するために使用されます。
WordPressデータベースにアクセスする方法
WordPressデータベースへの接続に関しては、いくつかの異なるオプションを利用できます。 利用できる方法は、使用するWordPressホスティングの種類によって大きく異なります。 サーバーがどのように構成されているかわからない場合は、ホスティングプロバイダーまたはシステム管理者に相談してください。 いずれにせよ、オプションには以下を含めることができます。
phpMyAdmin
phpMyAdminは、WebベースのGUIを介してデータベースに接続できるため、お気に入りのツールです。 phpMyAdminは、データベースをホストしているのと同じサーバーにインストールする必要があります。多くのホスティングプロバイダーは、そのままphpMyAdminを提供しています。
Plesk / cPanel
PleskとcPanelは、同様の機能を提供する2つのコントロールパネルプラットフォームです。サーバー管理を容易にするユーザーインターフェイスです。 もちろん、それらがサポートするテクノロジーやオペレーティングシステムなど、特定の重要な違いがあります。 いずれにせよ、わずかに異なる方法ではありますが、データベースにアクセスすることもできます。
SSH / MySQL/mariaDBクライアント
SSHは、データベースに接続するための使い勝手の悪い方法であり、GUIの代わりにCLI(コマンドラインインターフェイス)を提供します。 このため、SQLコマンドをより深く理解することをお勧めします。 SSHは、データベースに接続する前に、データベースをホストしているのと同じサーバーに明示的に設定する必要があります。
プラグイン
WordPressプラグインを使用してWordPressデータベースにアクセスすることもできます。 プラグインを使用すると、WordPress管理コンソールから直接データベースにアクセスできます。 ここでは、信頼できるサプライヤからプラグインを選択し、データを安全に保つために適用可能なすべてのベストプラクティスに従う必要があります。 使用するプラグインがわからない場合は、WordPressWebサイトに最適なプラグインを選択する方法に関するガイドをお読みください。
WordPressデータベース構造
WordPressデータベースは12のテーブルで構成されています。 デフォルトでは、各テーブルはwp_プレフィックスで始まります。 ただし、これは初期インストールおよび構成プロセス中に変更できます。 プレフィックスを変更することは、WordPressのセキュリティ上の理由から、特に同じサーバーに複数のインストールを意図している、またはすでに持っている場合は、一般的に推奨されます。
WordPressデータベースを構成する12のテーブルは次のとおりです(アルファベット順にリストされています)。
- wp_commentmeta
- wp_comments
- wp_links
- wp_options
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_taxonomy
- wp_usermeta
- wp_users
次に、各テーブルを個別に調べて、テーブルに格納されているデータとその内部構造を確認します。
テーブル構造
各テーブルの詳細に入る前に、テーブルがどのように構成されているかを確認する価値があります。 データベースのドキュメントに精通していない場合は、このセクションで、次のセクションで役立つクラッシュコースを提供します。 一方、SQLテーブルに精通している場合は、スキップしてください。
- フィールド名–これは、SQLテーブルにあるフィールドの名前です。
- 説明–フィールドが保持しているデータの種類を理解するのに役立つようにこれを入れました
- タイプ–これはフィールドが受け入れるデータ型です。 括弧内の数字は、入力できる許容文字数の厳しい制限を表しています。
- Null –このフィールドが現時点で使用されている理由は明確ではありません
- キー–これはエントリがキーであるかどうかを示します。 キーには、次のようなさまざまなタイプがあります。
- 主要な
- プライマリ(パート)
- 索引
- インデックス(パート)
- 個性的
- 多数
- デフォルト–エントリにデフォルト値がある場合、デフォルト値がここに一覧表示されます
- メモ–追加のメモ
wp_commentmeta
wp_commentsmetaテーブルには、コメントに関連するメタデータが格納されます。 コメントは、wp_commentsテーブルに個別に保存されます。 テーブルには次のフィールドがあります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
meta_id | これは、エントリの一意のIDです。 自動的にインクリメントします | bigint(20)unsigned | 主要な | ||
comment_id | これは、wp_commentsテーブルにあるメタデータに関連するコメントのIDです。 | bigint(20)unsigned | 索引 | 0 | |
meta_key | これは、エントリのメタデータのタイプを識別します | varchar(255) | はい | 索引 | ヌル |
meta_value | これは実際のメタデータです | ロングテキスト | はい | ヌル |
wp_comments
wp_commentsテーブルには、投稿コメントが格納されます。 コメントに関連するメタデータは、wp_commentmetaテーブルに保存されます。 テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
comment_ID | これは、エントリの一意のIDです。 自動的にインクリメントします | bigint(20) | 主要な | NA | |
comment_post_ID | これは、wp_postsテーブルにある、コメントが書き込まれた投稿のIDです。 | bigint(20) | 索引 | 0 | |
comment_author | コメントを書いた作者の名前です | tinytext | |||
comment_author_email | コメントを書いた作者のメールアドレスです | varchar(100) | 索引 | ||
comment_author_url | コメントを書いた作者のウェブサイトURLです | varchar(200) | |||
comment_author_IP | コメントを書いた作者のIPアドレスです | varchar(100) | |||
comment_date | コメントが投稿された日時です | 日付時刻 | 0000-00-00 00:00:00 | ||
comment_date_gmt | これは、コメントが投稿されたGMT(グリニッジ標準時)の日時です。 | 日付時刻 | インデックスとインデックスPt2 | 0000-00-00 00:00:00 | |
comment_content | これは実際に残されたコメントです | 文章 | |||
comment_karma | これは、コメント管理の目的でプラグインが使用できます | int(11) | |||
comment_承認済み | コメントが承認されたかどうかを示します | varchar(20) | インデックスパート1 | 0 | |
comment_agent | ここからコメントが投稿されました | varchar(255) | |||
comment_type | これは残されたコメントのタイプです | varchar(20) | |||
comment_parent | コメントが返信の場合、このフィールドは親のコメントを示します | bigint(20)unsigned | 索引 | 0 | |
ユーザーID | コメントしているユーザーが登録されている場合、これはwp_usersで使用可能なIDになります | bigint(20)unsigned | 0 |
wp_links
このテーブルは元々、WordPress3.5以降で廃止された機能であるブログロールをサポートするために作成されました。 下位互換性のために保持されていますが、現在は使用されていません。 テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
link_id | これは、エントリの一意のIDです。 自動的にインクリメントします | bigint(20)署名なし | 主要な | ||
link_url | これはリンクのURLです | varchar(255) | |||
link_name | |||||
これはリンクの名前です | varchar(255) | ||||
link_image | リンク関連画像のURLです | varchar(255) | |||
link_target | これはリンクのターゲットフレームです | varchar(25) | |||
link_desciption | これはリンクの説明です | varchar(255) | |||
link_visible | これにより、リンクが公開されているかどうかがわかります | varchar(20) | 索引 | Y | |
link_owner | これは、wp_usersで使用可能なリンクを作成したユーザーのユーザーIDです。 | bigint(20)署名なし | 1 | ||
link_rating | これはリンクの評価です | int(11) | 0 | ||
link_updated | これは、リンクが更新された日時です。 | 日付時刻 | 0000-00-00 00:00:00 | ||
link_rel | これがリンクの関係です | varchar(255) | |||
link_notes | これはリンクについてのメモです | ミディアムテキスト | |||
link_rss | これはリンクのRSSフィードアドレスです | varchar(255) |
wp_options
管理コンソールを介して構成されたWordPress設定はここに保存されます。 以下のスクリーンショットに示すように、プラグインとテーマは通常、設定情報もここに保存します。 ここでは、独自のWebサイトファイル変更モニターのスキャン頻度オプションが毎日設定されていることを確認できます。
テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
option_id | これは、エントリの一意のIDです。 自動的にインクリメントします。 | bigint(20)署名なし | 主要な | ||
option_name | これはオプション/設定の名前です | varchar(64) | 個性的 | ||
option_value | 保存されている設定の値です | ロングテキスト | |||
自動ロード | この設定は、オプションを自動ロードする必要があるかどうかをwp_load_alloptions()に通知します | varchar(20) | 索引 | はい |
wp_postmeta
各投稿に付随する投稿メタデータはここに保存されます。 メタデータには、添付ファイル、サムネイル、目的の投稿スラッグ、およびその他のそのような情報を含めることができます。 テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
meta_id | これは、エントリの一意のIDです。 自動的にインクリメントします | bigint(20)署名なし | 主要な | ||
フィールド名 post_id | これは、wp_postsで利用可能なメタデータが関連付けられている投稿のIDです。 | bigint(20)署名なし | 索引 | 0 | |
meta_key | 各投稿には複数のメタデータを含めることができるため、これはメタデータを識別するインデックスキーです。 | varchar(255) | はい | 索引 | ヌル |
meta_value | これは実際のメタデータです | ロングテキスト | はい | ヌル |
wp_posts
wp_postsテーブルは主要なテーブルであり、WordPressデータのコアが含まれています。 以下の例に示すように、実際の投稿、ページ、およびナビゲーションメニュー項目が保持され、すべてのWordPress新規インストールに含まれるデフォルトのサンプルページが示されます。
テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
ID | これは、エントリの一意のIDです。 自動的にインクリメントします | bigint(20)署名なし | プライマリとインデックス(パート4) | ||
post_author | これは、wp_usersで利用可能な投稿を書いた作成者のIDです。 | bigint(20)署名なし | 索引 | 0 | |
投稿日 | これは、投稿が作成された日時です | 日付時刻 | インデックス(パート3) | 0000-00-00 00:00:00 | |
post_date_gmt | これは、投稿が作成されたGMT(グリニッジ標準時)の日時です。 | 日付時刻 | 0000-00-00 00:00:00 | ||
post_content | これは投稿の実際の内容です | ロングテキスト | |||
記事のタイトル | これは投稿のタイトルです | 文章 | |||
post_excerpt | これは投稿の抜粋です | 文章 | |||
post_status | これは投稿のステータスです | varchar(20) | インデックス(パート2) | 公開 | |
comment_status | これにより、投稿へのコメントが許可されているかどうかがわかります | varchar(20) | 開いた | ||
ping_status | これにより、pingとトラックバックが許可されているかどうかがわかります | varchar(20) | 開いた | ||
post_password | 投稿は、ここに保存されている該当するパスワードでパスワードで保護できます | varchar(20) | |||
post_name | これは投稿タイトルのURLスラッグです | varchar(200) | 索引 | ||
to_ping | これは、投稿が更新されるたびにWordPressがpingbackを送信する必要があるURLのリストです | 文章 | |||
pingを実行しました | これは、WordPressが更新時にpingbackしたURLのリストです | 文章 | |||
post_modified | これは、投稿が最後に変更された日時です | 日付時刻 | 0000-00-00 00:00:00 | ||
post_modified_gmt | これは、投稿の最後の変更のGMT日時です。 | 日付時刻 | 0000-00-00 00:00:00 | ||
post_content_filtered | これは、キャッシュの目的でプラグインによって通常使用されるpost_contentのフィルタリングされたバージョンです | ロングテキスト | |||
post_parent | postがリビジョンまたは添付ファイルである場合、これにより親子関係が作成されます | bigint(20)署名なし | 索引 | 0 | |
GUID | これは、投稿のグローバル一意識別子(GUID)です | varchar(255) | |||
menu_order | これは、ページと非投稿アイテムが表示される注文番号です | int(11) | 0 | ||
post_type | これはコンテンツタイプを識別します | varchar(20) | インデックス(パート1) | 役職 | |
post_mime_type | これは、mimeタイプの投稿添付ファイルです | varchar(100) | |||
comment_count | これは、コメント、トラックバック、およびピングバックの総数です。 | bigint(20) | 0 |
wp_terms
用語は、WordPressでオブジェクトを分類するために使用される分類オブジェクトです。 たとえば、投稿で使用されるカテゴリとタグは用語の種類です。 この表には、WordPress全体で使用されるさまざまな種類の用語がすべて含まれています。 テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
term_id | これは、エントリの一意のIDです。 自動的にインクリメントします | bigint(20)署名なし | 主要な | ||
名前 | これは用語の名前です | varchar(200) | 索引 | ||
ナメクジ | これは用語のスラッグです | varchar(200) | 多数 | ||
term_group | これは、テーマとプラグインが用語をまとめてグループ化するために使用できるエイリアスです。 | bigint(10) | 0 |
wp_termmeta
このテーブルには、wp_termsで見つかった用語に関連付けられたメタデータが格納されます。 テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
meta_id | これは、エントリの一意のIDです。 自動的にインクリメントします | bigint(20)署名なし | 主要な | ||
term_id | これは、wp_termsで使用可能なメタデータに関連する用語のIDです。 | bigint(20)署名なし | 索引 | 0 | |
meta_key | これは、メタデータという用語の識別子キーです | varchar(255) | はい | 索引 | ヌル |
meta_value | これは実際のメタデータです | ロングテキスト | はい | ヌル |
wp_term_relationships
このテーブルは、投稿と分類法の関係を維持します。 テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
object_id | これは、wp_postsで利用可能な投稿のIDです。 | bigint(20)署名なし | プライマリー(パート1) | 0 | |
term_taxonomy_id | これは、wp_term_taxonomyで使用可能な用語分類のIDです。 | bigint(20)署名なし | プライマリ(パート2)とインデックス | 0 | |
term_order | これは用語の順序です | int(11) | 0 |
wp_term_taxonomy
この表は、分類法という用語と、それらを使用できるコンテキストを示しています。 たとえば、データベースという用語を投稿カテゴリおよび製品カテゴリとして使用できます(データベースサービスを販売していると仮定します)。 この場合、投稿カテゴリと製品カテゴリは用語分類法です。 テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
term_taxonomy_id | これは、エントリの一意のIDです。 自動的にインクリメントします | bigint(20)署名なし | 主要な | ||
term_id | これは、wp_termsで使用可能な用語のIDです。 | bigint(20)署名なし | ユニーク(パート1) | 0 | |
分類法 | これは分類法のナメクジです | varchar(32) | ユニーク(パート2)とインデックス | ||
説明 | これは分類法の説明です | ロングテキスト | |||
親 | タクソノミーが子の場合、これは親タクソノミーのIDです | bigint(20)署名なし | 0 | ||
カウント | これは、この分類法が割り当てられているオブジェクトの数です。 | bigint(20) | 0 |
wp_usermeta
このテーブルには、wp_usersテーブルにない追加のユーザーデータが格納されます。 WordPress自体、およびプラグインやテーマは、このテーブルを利用できます。
ユーザーメタデータの例は、ユーザーのニックネームです。 WordPressにはデフォルトでこのフィールドが含まれていますが、以下に示すように、メタデータの一部です。 もう1つの例はWooCommerceです。 このテーブルを使用して配送先住所などの顧客情報を保存するeコマースプラグイン。
テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
umeta_id | これは、エントリの一意のIDです。 自動的にインクリメントします | bigint(20)署名なし | 主要な | ||
ユーザーID | これは、wp_usersにある情報に関連するユーザーのIDです。 | bigint(20)署名なし | 索引 | 0 | |
meta_key | これはメタエントリのキー識別子です | varchar(255) | はい | 索引 | ヌル |
meta_value | これは実際のメタデータです | ロングテキスト | はい | ヌル |
wp_users
WordPressユーザーの情報はここに保存されます。 ユーザーはWordPressエコシステムの不可欠な部分であるため、このテーブルは不可欠なものです。
次の例に示すように、このテーブルには各ユーザーのコア情報のみが格納されます。 他のすべての情報はwp_usermetaテーブルに保存されます。
テーブルには次の列があります。
列名 | 説明 | タイプ | ヌル | 鍵 | デフォルト |
---|---|---|---|---|---|
ID | これは、エントリの一意のIDです。 自動的にインクリメントします | bigint(20)署名なし | 主要な | ||
user_login | これはユーザーのユーザー名です | varchar(60) | 索引 | ||
user_pass | これはユーザーのパスワードです | varchar(64) | |||
user_nicename | これはユーザーの表示名です | varchar(50) | 索引 | ||
user_email | これはユーザーのメールアドレスです | varchar(100) | |||
user_url | これはユーザーのURLです(例:ウェブサイト) | varchar(100) | |||
user_registered | これは、ユーザーが登録された日時です。 | 日付時刻 | 0000-00-00 00:00:00 | ||
user_activation_key | これはユーザーのアクティベーションキーであり、パスワードをリセットするために使用されます | varchar(60) | |||
ユーザーステータス | これはWordPress3.0以降では使用されなくなりましたが、ユーザーがスパムであったかどうかを示すために使用されます | int(11) | 0 | ||
表示名 | これはユーザーの公開表示名です | varchar(250) |
WordPressデータベースに精通する
データベースは、初心者にとっては非常に威圧的である可能性があります。結局のところ、データベースはWordPressが機能するために必要なすべてのデータを保持しています。 ここでの失敗はサイトのクラッシュを引き起こす可能性があることは事実ですが、これがあなたを脅かさないようにしてください。 結局のところ、WordPressデータベースの使い方を知っていると、これが必要になった場合のトラブルシューティング作業が大幅に簡単になります。
テスト環境またはステージング環境を設定すると、Webサイトをオフラインにするリスクを冒すことなく、自由に実験できる安全なスペースを提供できます。 コンピューターにXAMPPステージング環境を無料でセットアップすることもできます。WordPressのデータベースをマスターするために必要なすべてのものを提供します。