回答編集履歴
1
追記
test
CHANGED
@@ -7,3 +7,53 @@
|
|
7
7
|
|
8
8
|
|
9
9
|
「WordPress フィルターフック」とかのキーワードで調べるとたくさんのページで解説されていますので、参考にしてみてください。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
# 追記(以下二件のコメントを受けて)
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
> 回答ありがとうございます。フックの効果とはthe_titleが読まれた時に関数を実行するだけですよね?例えばthe_titleの後ろに!をつけたいなら、関数内は$title . '!' );になりますよね、、しかしなぜそれが変数で書かれているのか、しかも第一引数で指定したものなのかがわかりません。function test_function{ return linkbefore,linkafterとかでいいのではないのですか?なぜワードプレスは$titleをグローバル変数でもないのに、the_title();で出力されたタイトルの代わりと判断できるのですか??
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
> 例えば、このフィルターフックの効果に、実行する関数の第一引数をタイトルと見なし、タイトルに付け加えたい記述は、’文字列’ . 第一引数で適当に決めたもの . '文字列’で書きなさいと決められているならわかりますが、、
|
22
|
+
|
23
|
+
テンプレートタグでもないのに(独自の関数)、第一引数をタイトルがあるべきところとみなす、なんてワードプレスはわかるのですか?
|
24
|
+
|
25
|
+
’文字列’ . 第2引数で適当に決めたもの . '文字列’ や、 ’文字列’ . 引数に書いておらず、さらに変数でもないもの . '文字列’ でもちゃんと文字列は付け加えられるのでしょうか。
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
- フィルターフックした関数にはapply_filterで指定された変数が順番に引数として渡される
|
30
|
+
|
31
|
+
- フィルターフックした関数に渡される第一引数はフィルターする値である
|
32
|
+
|
33
|
+
- フィルターフックした関数はフィルターした値(加工した値)を戻り値とする
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
と、**WordPressの仕組みでで決まっている**という点を理解してください。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
フックした関数側では別に引数の名前はなんでもよいです。たとえば以下でも構いません。
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
```PHP
|
46
|
+
|
47
|
+
function test_function( $aiueo, $id = null){
|
48
|
+
|
49
|
+
return '「'.$aiueo.'」';
|
50
|
+
|
51
|
+
}
|
52
|
+
|
53
|
+
add_filter( 'the_title', 'test_function',10,2 );
|
54
|
+
|
55
|
+
```
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
もし、この構造に不自然さを感じるようであれば、ご自分でPHPコードを書いて、WordPressのフィルターフックの仕組みを変更すればよいと思います。
|