回答編集履歴

1

追記

2020/02/20 23:34

投稿

退会済みユーザー
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のフィルターフックの仕組みを変更すればよいと思います。