WordPressのカスタムフィールドは記事のメタ情報(メタ情報)です。この機能を使用すると、記事の機能を拡張したり、WordPressプラグインを学習したりできます。 - 開発とテーマに関する基本的な知識。記事用の追加のカスタム コンテンツを簡単に保存できます。
カスタムフィールドはプラグイン開発者だけが使用するものではありません。WordPress のアイキャッチ画像、カスタムページテンプレート、その他の機能に関する情報はカスタムフィールドの形式で保存されます。
記事エディタインターフェースの「カスタム列」セクションは、名前が「_」で始まるフィールドを除くフィールドを管理できます(「カスタム列」セクションがない場合は、右上の「表示オプション」でオンにしてください)コーナー)のため、多くの WordPress ユーザーが自分でカスタムフィールドを管理することはできません。
保管原理
カスタム フィールドは非常に柔軟です。まず、そのストレージ原理とその柔軟性について説明します。データベースでは、記事を保存する wp_posts フォームにはデフォルトの 20 項目のみがあり、必要な記事情報を保存するために使用されます。
カスタムフィールドを格納するwp_postmetaテーブルには、meta_id(カスタムフィールドのID)、post_id(カスタムフィールドが属する記事のID)、meta_key(カスタムフィールドの名前)、meta_value(カスタムフィールド)の4つの項目のみがあります。 value))、通常は、meta_key と meta_value の 2 つの項目に注意するだけで済みます。
このため、各記事には同じ名前で異なる値のカスタム フィールドを含めることができ、任意のプラグインとテーマでカスタム フィールドを使用して記事の情報を拡張できます。
記事内のカスタムフィールドの名前は繰り返すことができます。
フィールドを追加
カスタムフィールドは記事編集ページで操作できますが、この記事は主に開発について書いています。
カスタムフィールドを追加するには、add_post_meta() 関数を使用できます:
リーリーパラメータ:
$post_id
(整数) (必須) カスタムフィールドが追加される記事のID。
デフォルト値: なし
$meta_key
(文字列) (必須) カスタム フィールドの名前。
デフォルト値: なし
$meta_value
(混合) (必須) カスタムフィールドの値。
デフォルト値: なし
$ユニーク
(ブール値) (オプション) 同じ名前のフィールドがすでに存在する場合、それを繰り返し追加するかどうか。 True の場合は許可します。False の場合は許可しません。
デフォルト値: False
フィールドを更新します
フィールドの値を更新するには、update_post_meta() 関数を使用できます:
リーリーパラメータ:
$post_id
(整数) (必須) カスタムフィールドを更新する記事の ID。
デフォルト値: なし
$meta_key
(文字列) (必須) 更新するカスタム フィールドの名前。
デフォルト値: なし
$meta_value
(混合) (必須) 更新するカスタム フィールドの値。
デフォルト値: なし
$prev_value
(混合) (オプション) このパラメーターは、投稿に同じ名前の複数のカスタム フィールドがある場合にのみ役立ちます。空白のままにすると、同じ名前を持つすべてのフィールドが更新され、それ以外の場合は、このパラメータと同じ値を持つフィールドが更新されます。
デフォルト値: 空の文字列
フィールドを取得します
フィールドを取得するには、get_post_meta() 関数を使用できます:
リーリーパラメータ:
$post_id
(整数) (必須) 取得するフィールドの記事 ID。ループ内の場合は、get_the_ID() を使用して設定できます。
デフォルト値: なし
$キー
(文字列) (オプション) 取得するフィールドの名前。
デフォルト値: なし
$シングル
(ブール値) (オプション) True の場合は文字列を返し、False の場合は配列を返し、同じキー値を持つカスタム フィールドの値が加算順にシーケンス配列に結合されます。
デフォルト値: False
例
以下は閲覧統計の簡単な例です:
リーリー カウントを取得します。 リーリー非表示のカスタムフィールド
データベースにはWordPressで作成したカスタムフィールドが多数ありますが、記事エディターの「カスタム列」には表示されません(「カスタム列」セクションがない場合は、上部の「表示オプション」をオンにしてください)右隅)、アイキャッチ画像、カスタムページテンプレート、コメントがオンになっているかどうかなど。
注意深く観察すると、これらのカスタム フィールドの名前はすべてアンダースコア「_」で始まることがわかります。したがって、アンダースコア「_」で始まるカスタム フィールドはユーザーには表示されず、the_meta() も表示されません。関数。出力はユーザーから隠されます。
利用这个特性,我们可以把不想让用户随便修改的字段、会让用户感到困惑的字段,比如已经提供设置界面的设置选项、缓存数据等等,以免出现错误。
下边是一个小例子:
add_post_meta( get_the_ID(), '_time_diff', time() );
另外,如果自定义字段储存的内容是数组即使名字前边不是下划线 “_” 也不会显示。