質問編集履歴

2

リンク先変更と文の修正

2019/06/16 05:06

投稿

chikachi
chikachi

スコア33

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  ###試したこと
16
16
 
17
- 登録時のフックを必死に探して「[create_term](http://hookr.io/actions/create_term/)」を下記のように使ったのですが、実現できませんでした。
17
+ 登録時のフックを必死に探して「[create_term](https://developer.wordpress.org/reference/hooks/create_term//)」を下記のように使ったのですが、実現できませんでした。
18
18
 
19
19
 
20
20
 
@@ -58,6 +58,14 @@
58
58
 
59
59
  しかしなぜか、下記の「// できる」のように「changed××」という変更が効いた状態でタームが登録されるのに、「// できない」のようにエスケープ処理の方はできず、空白が登録されてしまいました。
60
60
 
61
+
62
+
63
+ このフックは「Filters a term field value before it is sanitized.」とあるのでサニタイズされる前に発動するものだと思ったのですが…
64
+
65
+
66
+
67
+ どうすればできるか、どなたかお分かりになる方いらっしゃいませんでしょうか?
68
+
61
69
  ```PHP
62
70
 
63
71
  add_filter( 'pre_term_name', 'my_esc_term_name', 10, 2 );

1

追記

2019/06/16 05:06

投稿

chikachi
chikachi

スコア33

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,14 @@
1
1
  ###実現したいこと
2
2
 
3
- WordPressでHTMLタグをエスケープし、タームを登録できるようにす。
3
+ WordPressでタームにHTMLタグを入力すると、空白になって登録されてよね
4
+
5
+ これをエスケープ処理して登録できるようにしたいです。
6
+
7
+
8
+
9
+ 初期設定はこうなる:<div> → 空白で登録される
10
+
11
+ 実現したいのはこう:<div> → &lt;div&gt;
4
12
 
5
13
 
6
14
 
@@ -39,3 +47,29 @@
39
47
  }
40
48
 
41
49
  ```
50
+
51
+ ###追記
52
+
53
+ さらに別の「[pre_term_{$field}](https://developer.wordpress.org/reference/hooks/pre_term_field/)」というフックを見つけました。
54
+
55
+ こちらは登録前の値を変更できるもののようでした。
56
+
57
+
58
+
59
+ しかしなぜか、下記の「// できる」のように「changed××」という変更が効いた状態でタームが登録されるのに、「// できない」のようにエスケープ処理の方はできず、空白が登録されてしまいました。
60
+
61
+ ```PHP
62
+
63
+ add_filter( 'pre_term_name', 'my_esc_term_name', 10, 2 );
64
+
65
+ function my_esc_term_name( $value, $taxonomy ){
66
+
67
+ $name = esc_html($value); // できない
68
+
69
+ $name = 'changed'.$value; // できる
70
+
71
+ return $name;
72
+
73
+ }
74
+
75
+ ```