teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

質問をわかりやすく修正

2018/02/26 05:52

投稿

chef
chef

スコア15

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,7 @@
1
1
  ### 前提
2
2
 
3
3
  エスケープされたショートコード(例:[[shortcode]])が記事本文の先頭にある場合、抜粋でそのショートコードが実行されてしまいます。
4
+ (また、普通のショートコードだとショートコードの部分が丸々消えてしまいます)
4
5
 
5
6
  ### 発生している問題・エラーメッセージ
6
7
 

1

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

2018/02/26 05:52

投稿

chef
chef

スコア15

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