web-dev-qa-db-ja.com

カスタムデータ/テーブルを作成して使用する方法(任意のデータ用)

今日からWordpressを始めよう。最初に設定したときに、WordpressがmySqlデータベース(* .wrdp1という名前)にテーブルを作成したことに気付きました。これらの表は、コメント、投稿、ユーザー、そしていくつかのリンク関係を網羅しています。

それでは、新しいデータセットを使用したいと思います。 2つのことを含むページを作成するとします。

  • aテキストフィールド、ここで私のユーザーは1から10までの数字を入力できます
  • aチャート、これは私のユーザーが過去に入力した数字の頻度を表示します。

私の推測:上記のようなもののために、私はデータベースにカスタムテーブル/データセットをセットアップしなければならないでしょう、この数データが​​書かれて、次に読まれることができるように。 (テキストフィールドからデータベースに番号を保存し、後でその番号を読み返すには、PHPを使用する必要があるとも思います。)

だれかがこの場合のお勧めのアプローチの概要を教えてもらえますか?(その後、私は自分自身で詳細を調べることができます。)

1
boardbite

WordPressはカスタムデータを処理するためのかなり柔軟な方法を持っています、そしてそれはwp_postmetaと呼ばれるテーブルにそれを格納します(デフォルトのwp_接頭辞を仮定します)。唯一のキャッチは、それがどういうわけか特定の投稿に関連していることを前提としているということです。

使い方はとても簡単です(詳細については、 を参照してください )。

// Add a custom data (i.e. textfield of value '5') for post ID = 1
update_post_meta(1, 'my_textfield', 5);

// Return an array which contains 'my_textfield' values from post ID = 1
get_post_meta(1, 'my_textfield', true);

情報が投稿ではなくユーザーに関連している場合は、wp_usermetaテーブルを利用することもできます。考え方は同じです(詳しくはを参照)。

// Add a custom data (i.e. textfield of value '5') for to user 1
update_user_meta(1, 'my_textfield', 5);

// Return an array which contains 'my_textfield' values for user 1
get_user_meta(1, 'my_textfield', true);

カスタムテーブルを作成することは最後の手段であるべきであり、保存したいカスタム情報に複数の値がある場合にのみ使用されます(つまり、ユーザーが選択した番号、記録された時間、そのユーザーのIPを知る必要があります)など)。その場合は、最初にそのテーブルを作成するPHPコードは言うまでもなく、そのテーブルに値を追加するための独自の関数をコーディングする必要があります。もっと複雑で、以前にそれをやったことがある人なら誰でもそれが微妙な出来事でデバッグが難しいことを証明するでしょう、そしてそれが将来のWordPressバージョンで壊れないという保証はありません。とにかく、それがあなたが必要とするものであるなら、 これ はあなたを軌道に乗せるべきです。

それが役に立てば幸い!それがどのようになるのか教えてください。

1
Tomas Buteler

@ tbutelerの答えに追加するには、独自の関連メタデータを持つことができる カスタム投稿タイプ もあります。 投稿タイプ ページを見ると、ナビゲーションメニュー項目の保存など、WordPressがこれらをどのように使用しているかがわかりにくい場合があります。組み込みのカテゴリやタグのような関係を作成するために使用できる カスタム分類法 もあります。メタデータと同様に、データを管理するための独自のUIを構築できるように、これらのオブジェクトを管理するための一連のAPI関数があります。

2
Milo