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