質問編集履歴

2

質問をわかりやすく修正

2018/02/26 05:52

投稿

chef
chef

スコア15

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,8 @@
3
3
 
4
4
 
5
5
  エスケープされたショートコード(例:[[shortcode]])が記事本文の先頭にある場合、抜粋でそのショートコードが実行されてしまいます。
6
+
7
+ (また、普通のショートコードだとショートコードの部分が丸々消えてしまいます)
6
8
 
7
9
 
8
10
 

1

質問内容をわかりやすく修正

2018/02/26 05:52

投稿

chef
chef

スコア15

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,8 @@
1
- ### 前提・実現したいこと
1
+ ### 前提
2
2
 
3
3
 
4
4
 
5
- 抜粋でショートコード実行しようにしたい(エスケープしたい)
5
+ エスケープされたショートコード(例:[[shortcode]])が記事本文の先頭にある場合、抜粋でそのショートコード実行されてます。
6
-
7
- もしくは、本文内で実行してそれを抜粋として取得したい
8
6
 
9
7
 
10
8
 
@@ -12,32 +10,76 @@
12
10
 
13
11
 
14
12
 
15
- エスケープされたショートコード(例:[[shortcode]])が記事本文の先頭にある場合、抜粋でそのショートコードが実行されてしまいます。
16
-
17
-
18
-
19
- 例えば以下のコード
13
+ 例えば以下のようにショートコードを登録し、
20
14
 
21
15
 
22
16
 
23
17
  ```php
24
18
 
25
- function lalala_shortcode($atts) {
19
+ function shortcode_test() {
26
20
 
27
- wp_list_pages();//固定ペジのリスを取得
21
+ return 'ショートコード';
28
22
 
29
23
  }
30
24
 
31
- add_shortcode('lalala', 'lalala_shortcode');
25
+ add_shortcode('shortcode', 'shortcode_test');
32
26
 
33
27
  ```
34
28
 
35
29
 
36
30
 
37
- これを投稿本文[[lalala]]として記述した場合、本文内ではしっかりとエスケープ処理されるのでが、記事一覧になるとそのまま出力されてしまいます。
31
+ 投稿画面このように記述して公開するとします。
38
32
 
39
33
 
34
+
35
+ ```
36
+
37
+ WordPressには[shortcode]という便利なプラグインがあります。
38
+
39
+ ```
40
+
41
+
42
+
43
+ すると、本文では「WordPressにはショートコードという便利なプラグインがあります。」と表示されますが、抜粋では「WordPressにはという便利なプラグインがあります。」と表示されます。
44
+
45
+
46
+
47
+ ここからが本題ですが、以下のように投稿画面でエスケープしたショートコードを使うとします。
48
+
49
+
50
+
51
+ ```
52
+
53
+ ショートコードは[[shortcode]]と記述することで使えます。
54
+
55
+ ```
56
+
57
+
58
+
59
+ すると、先ほどと同じ理屈で、本文には「ショートコードは[shortcode]と記述することで使えます。」と表示されますが、抜粋では「ショートコードはショートコードと記述することで使えます。」と表示されてしまいます。
60
+
61
+
62
+
63
+ 変なプラグインも使っていないんですが、これはWordPressの仕様なんでしょうか?
64
+
65
+ みなさんの環境でも同じ動作をしますか?
66
+
67
+ 何か対策をされていますか?(←これを知りたいです)
68
+
69
+
70
+
71
+ ### 実現したいこと
72
+
73
+
74
+
75
+ 本文と同じものを抜粋で表示したいです。
40
76
 
41
77
  get_the_excerpt関数をどうにかできるのか、何かしらのフックがあるのか。。
42
78
 
43
79
  お知恵をお借りできれば幸いです。
80
+
81
+
82
+
83
+ ### 補足
84
+
85
+ 説明がわかりづらかったため質問を修正しました。