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

「関数リファレンス/sanitize post field」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(en:Function Reference/sanitize_post_field 21:52, 31 July 2013 Jdgrimes 版を和訳。)
 
(関連資料: {{Tag Footer}})
 
(他の1人の利用者による、間の5版が非表示)
5行目: 5行目:
 
投稿のフィールドの値を、そのフィールドが使われる予定のコンテキストに基づいて無害化(サニタイズ)します。
 
投稿のフィールドの値を、そのフィールドが使われる予定のコンテキストに基づいて無害化(サニタイズ)します。
  
空のコンテキストまたは未サポートのコンテキストを与えると、デフォルトの 'display' フィルターが適用されます。
+
空のコンテキストまたは未サポートのコンテキストを与えると、デフォルトのフィルター('display' コンテキスト)が適用されます。
  
 
独自のフィルター関数を作らなくても、コンテキスト毎にカスタムフィルタリングをサポートする充分なフィルターがあります。
 
独自のフィルター関数を作らなくても、コンテキスト毎にカスタムフィルタリングをサポートする充分なフィルターがあります。
11行目: 11行目:
  
 
<div id="Usage">
 
<div id="Usage">
 +
 
== 使い方 ==
 
== 使い方 ==
 
</div>
 
</div>
23行目: 24行目:
 
{{Parameter|$value|mixed|フィールドの値}}
 
{{Parameter|$value|mixed|フィールドの値}}
 
{{Parameter|$post_id|整数|投稿 ID}}
 
{{Parameter|$post_id|整数|投稿 ID}}
{{Parameter|$context|文字列|どのように投稿のフィールドを無害化するか。有効な値:<tt>'raw'</tt>, <tt>'edit'</tt>, <tt>'db'</tt>, <tt>'display'</tt>, <tt>'attribute'</tt> または <tt>'js'</tt>}}
+
{{Parameter|$context|文字列|どのように投稿のフィールドを無害化するか。}}
 +
: 有効な値は:
 +
:* <code>'raw'</code> - 数値フィールドの値のみ無害化
 +
:* <code>'edit'</code> - 各種フィルターフックで無害化
 +
:* <code>'db'</code> - 各種フィルターフックで無害化
 +
:* <code>'display'</code> - 各種フィルターフックで無害化
 +
:* <code>'attribute'</code> - 各種フィルターフックの後、<tt>esc_attr()</tt> で無害化
 +
:* <code>'js'</code> - 各種フィルターフックの後、<tt>esc_js()</tt> で無害化
  
 
<div id="Return_Values">
 
<div id="Return_Values">
 +
 
== 戻り値 ==
 
== 戻り値 ==
 
</div>
 
</div>
67行目: 76行目:
 
</div>
 
</div>
  
* <tt>[[関数リファレンス/apply_filters | apply_filters()]]</tt> を使って下記のフィルターを呼び出します:
+
<tt>[[関数リファレンス/apply_filters | apply_filters()]]</tt> を使って下記のフィルターを呼び出します。
** <tt>'edit_{$field}'</tt> <tt>'{$field_no_prefix}_edit_pre'</tt> - 引数は <tt>$value</tt> と <tt>$post_id</tt><tt>$context</tt> <tt>'edit'</tt> であり、かつフィールド名が <tt>'post_'</tt> で始まる場合のみ。
+
# <tt>$context</tt> が <tt>'edit'</tt> である場合のみ:
** <tt>'edit_post_{$field}'</tt> - 引数は <tt>$value</tt> と <tt>$post_id</tt><tt>$context</tt> が <tt>'db'</tt> である場合のみ。
+
## フィールド名が <tt>'post_'</tt> で始まる場合:
** <tt>'pre_{$field}'</tt> - 引数は <tt>$value</tt><tt>$context</tt> が <tt>'db'</tt> であり、かつフィールド名が <tt>'post_'</tt> で始まる場合のみ。
+
##* <tt>'edit_{$field}'</tt> - 引数は <tt>$value</tt> と <tt>$post_id</tt>
** <tt>'{$field}_pre'</tt> - 引数は <tt>$value</tt><tt>$context</tt> <tt>'db'</tt> であり、かつフィールド名が <tt>'post_'</tt> で''始まらない''場合のみ。
+
##* <tt>'{$field_no_prefix}_edit_pre'</tt> - <tt>$field_no_prefix</tt> <tt>$field</tt> から <tt>'post_'</tt> を削除した文字列。引数は <tt>$value</tt> と <tt>$post_id</tt>
** <tt>'{$field}'</tt> - 引数は <tt>$value</tt>, <tt>$post_id</tt> および <tt>$context</tt>。<tt>$context</tt> が <tt>'raw'</tt>, <tt>'edit'</tt>, <tt>'db'</tt> の何れでもなく、かつフィールド名が <tt>'post_'</tt> で始まる場合のみ。
+
## フィールド名が <tt>'post_'</tt> ''始まらない''場合:
** <tt>'post_$field'</tt> - 引数は <tt>$value</tt><tt>$context</tt> <tt>'raw'</tt>, <tt>'edit'</tt>, <tt>'db'</tt> の何れでもなく、かつフィールド名が <tt>'post_'</tt> で''始まらない''場合のみ。
+
##* <tt>'edit_post_{$field}'</tt> - 引数は <tt>$value</tt> と <tt>$post_id</tt>
 +
# <tt>$context</tt> が <tt>'db'</tt> である場合のみ:
 +
## フィールド名が <tt>'post_'</tt> で始まる場合:
 +
##* <tt>'pre_{$field}'</tt> - 引数は <tt>$value</tt>
 +
##* <tt>'{$field_no_prefix}_save_pre'</tt> - <tt>$field_no_prefix</tt> は <tt>$field</tt> から <tt>'post_'</tt> を削除した文字列。引数は <tt>$value</tt>
 +
## フィールド名が <tt>'post_'</tt> で''始まらない''場合:
 +
##* <tt>'{$field}_pre'</tt> - 引数は <tt>$value</tt>
 +
# <tt>$context</tt> が <tt>'raw'</tt>, <tt>'edit'</tt>, <tt>'db'</tt> の何れでもない場合:
 +
## フィールド名が <tt>'post_'</tt> で始まる場合:
 +
##* <tt>'{$field}'</tt> - 引数は <tt>$value</tt>, <tt>$post_id</tt> および <tt>$context</tt>
 +
## フィールド名が <tt>'post_'</tt> で''始まらない''場合:
 +
##* <tt>'post_{$field}'</tt> - 引数は <tt>$value</tt>, <tt>$post_id</tt> および <tt>$context</tt>
  
 
<div id="Change_Log">
 
<div id="Change_Log">
 +
 
== 改訂履歴 ==
 
== 改訂履歴 ==
 
</div>
 
</div>
92行目: 113行目:
  
 
{{sanitize functions|sanitize_post_field()}}
 
{{sanitize functions|sanitize_post_field()}}
 +
 +
 +
{{Tag Footer}}
 +
  
 
{{原文|Function Reference/Sanitize_post_field|133822}} <!-- 21:52, 31 July 2013 Jdgrimes 版 -->
 
{{原文|Function Reference/Sanitize_post_field|133822}} <!-- 21:52, 31 July 2013 Jdgrimes 版 -->
 +
  
 
{{DEFAULTSORT:Sanitize_post_field}}
 
{{DEFAULTSORT:Sanitize_post_field}}

2015年5月27日 (水) 22:49時点における最新版

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

空のコンテキストまたは未サポートのコンテキストを与えると、デフォルトのフィルター('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最新版との差分