• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/sanitize post field

提供: WordPress Codex 日本語版
移動先: 案内検索

投稿のフィールドの値を、そのフィールドが使われる予定のコンテキストに基づいて無害化(サニタイズ)します。

空のコンテキストまたは未サポートのコンテキストを与えると、デフォルトのフィルター('display' コンテキスト)が適用されます。

独自のフィルター関数を作らなくても、コンテキスト毎にカスタムフィルタリングをサポートする充分なフィルターがあります。 必要なフィルターをフックする関数を作るだけで済みます。

使い方

<?php sanitize_post_field( $field, $value, $post_id, $context ); ?>

パラメータ

$field
文字列) (必須) 投稿オブジェクトのフィールド名
初期値: なし
$value
mixed) (必須) フィールドの値
初期値: なし
$post_id
整数) (必須) 投稿 ID
初期値: なし
$context
文字列) (必須) どのように投稿のフィールドを無害化するか。
初期値: なし
有効な値は:
  • 'raw' - 数値フィールドの値のみ無害化
  • 'edit' - 各種フィルターフックで無害化
  • 'db' - 各種フィルターフックで無害化
  • 'display' - 各種フィルターフックで無害化
  • 'attribute' - 各種フィルターフックの後、esc_attr() で無害化
  • 'js' - 各種フィルターフックの後、esc_js() で無害化

戻り値

mixed 
無害化された値

用例

表示用に無害化する

投稿タイトルを表示するために無害化します:

$post = get_post( 35 );

$post_title = sanitize_post_field( 'post_title', $post->post_title, $post->ID, 'display' );

echo $post_title;

属性付加用に無害化する

フォームの隠しフィールドの値として使うために投稿タイトルを無害化します:

$post = get_post( 543 );

$post_title = sanitize_post_field( 'post_title', $post->post_title, $post->ID, 'attribute' );

echo '<input type="hidden" name="post-title" value="' . $post_title . '" />';

参考

apply_filters() を使って下記のフィルターを呼び出します。

  1. $context'edit' である場合のみ:
    1. フィールド名が 'post_' で始まる場合:
      • 'edit_{$field}' - 引数は $value$post_id
      • '{$field_no_prefix}_edit_pre' - $field_no_prefix$field から 'post_' を削除した文字列。引数は $value$post_id
    2. フィールド名が 'post_'始まらない場合:
      • 'edit_post_{$field}' - 引数は $value$post_id
  2. $context'db' である場合のみ:
    1. フィールド名が 'post_' で始まる場合:
      • 'pre_{$field}' - 引数は $value
      • '{$field_no_prefix}_save_pre' - $field_no_prefix$field から 'post_' を削除した文字列。引数は $value
    2. フィールド名が 'post_'始まらない場合:
      • '{$field}_pre' - 引数は $value
  3. $context'raw', 'edit', 'db' の何れでもない場合:
    1. フィールド名が 'post_' で始まる場合:
      • '{$field}' - 引数は $value, $post_id および $context
    2. フィールド名が 'post_'始まらない場合:
      • 'post_{$field}' - 引数は $value, $post_id および $context

改訂履歴

2.3.0 にて導入されました。

ソースファイル

sanitize_post_field()wp-includes/post.php にあります。


サニタイズ関数: sanitize_email(), sanitize_file_name(), sanitize_html_class(), sanitize_key(), sanitize_meta(), sanitize_mime_type(), sanitize_option(), sanitize_sql_orderby(), sanitize_post_field(), sanitize_text_field(), sanitize_title(), sanitize_title_for_query(), sanitize_title_with_dashes(), sanitize_user()



関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/Sanitize_post_field最新版との差分