filter_default_metadata()


WordPressのfilter_default_metadata()関数は、デフォルトのメタデータをフィルタリングするために使用されます。主にプラグインやテーマ開発で利用されます。

構文

filter_default_metadata( string $meta_type, int $object_id, string $meta_key, mixed $default_value );

引数の説明:

  • $meta_type (string) — メタデータのタイプ(’post’、’user’、’comment’、’term’)
  • $object_id (int) — オブジェクトID
  • $meta_key (string) — メタデータのキー
  • $default_value (mixed) — デフォルト値

例1: 投稿のデフォルトメタデータをフィルタリング

投稿のデフォルトメタデータを変更します。

add_filter('default_post_metadata','filter_default_metadata',10,4);function filter_default_metadata($value,$object_id,$meta_key,$single){if($meta_key==='custom_key'){return'default_value';}return $value;}

例2: ユーザーメタデータのデフォルト値を設定

ユーザーメタデータのデフォルト値を設定します。

add_filter('default_user_metadata','filter_default_metadata',10,4);function filter_default_metadata($value,$object_id,$meta_key,$single){if($meta_key==='user_role'){return'subscriber';}return $value;}

例3: タームメタデータのフィルタリング

タームメタデータのデフォルト値を変更します。

add_filter('default_term_metadata','filter_default_metadata',10,4);function filter_default_metadata($value,$object_id,$meta_key,$single){if($meta_key==='term_color'){return'#ffffff';}return $value;}

例4: コメントメタデータのデフォルト値

コメントメタデータのデフォルト値を設定します。

add_filter('default_comment_metadata','filter_default_metadata',10,4);function filter_default_metadata($value,$object_id,$meta_key,$single){if($meta_key==='comment_rating'){return 5;}return $value;}

例5: 条件付きでデフォルト値を変更

特定の条件でデフォルト値を変更します。

add_filter('default_post_metadata','filter_default_metadata',10,4);function filter_default_metadata($value,$object_id,$meta_key,$single){if($meta_key==='visibility'&&get_post_type($object_id)==='page'){return'private';}return $value;}

例6: 複数のメタキーを処理

複数のメタキーに対して異なるデフォルト値を設定します。

add_filter('default_post_metadata','filter_default_metadata',10,4);function filter_default_metadata($value,$object_id,$meta_key,$single){switch($meta_key){case'price':return 0;case'stock':return 100;default:return $value;}}

例7: 動的なデフォルト値の設定

現在のユーザーに基づいてデフォルト値を設定します。

add_filter('default_user_metadata','filter_default_metadata',10,4);function filter_default_metadata($value,$object_id,$meta_key,$single){if($meta_key==='user_language'){return get_user_locale();}return $value;}

注意事項:

  • この関数はフック内でのみ使用します。
  • パフォーマンスに影響する可能性があるため、過度に使用しないでください。
  • メタデータの型に注意して使用してください。

関連機能: