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サイトファイル変更モニターのスキャン頻度オプションが毎日設定されていることを確認できます。 WordPressファイルの変更モニターのスキャン頻度

テーブルには次の列があります。

列名説明タイプヌルデフォルト
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新規インストールに含まれるデフォルトのサンプルページが示されます。 すべての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テーブルに保存されます。

WordPressユーザーその他のメタ情報

テーブルには次の列があります。

列名説明タイプヌルデフォルト
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のデータベースをマスターするために必要なすべてのものを提供します。