当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

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

提供: WordPress Codex 日本語版
< 関数リファレンス
2014年8月30日 (土) 15:34時点におけるGblsm (トーク | 投稿記録)による版 (説明: 誤訳を修正。)

移動先: 案内検索

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

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

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

使い方

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

パラメータ

$field
文字列) (必須) 投稿オブジェクトのフィールド名
初期値: なし
$value
mixed) (必須) フィールドの値
初期値: なし
$post_id
整数) (必須) 投稿 ID
初期値: なし
$context
文字列) (必須) どのように投稿のフィールドを無害化するか。有効な値:'raw', 'edit', 'db', 'display', 'attribute' または '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() を使って下記のフィルターを呼び出します:
    • 'edit_{$field}''{$field_no_prefix}_edit_pre' - 引数は $value$post_id$context'edit' であり、かつフィールド名が 'post_' で始まる場合のみ。
    • 'edit_post_{$field}' - 引数は $value$post_id$context'db' である場合のみ。
    • 'pre_{$field}' - 引数は $value$context'db' であり、かつフィールド名が 'post_' で始まる場合のみ。
    • '{$field}_pre' - 引数は $value$context'db' であり、かつフィールド名が 'post_'始まらない場合のみ。
    • '{$field}' - 引数は $value, $post_id および $context$context'raw', 'edit', 'db' の何れでもなく、かつフィールド名が 'post_' で始まる場合のみ。
    • 'post_$field' - 引数は $value$context'raw', 'edit', 'db' の何れでもなく、かつフィールド名が 'post_'始まらない場合のみ。

改訂履歴

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最新版との差分