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

質問編集履歴

2

試したことを追記しました。

2018/07/12 11:33

投稿

mio_murata
mio_murata

スコア8

title CHANGED
File without changes
body CHANGED
@@ -137,6 +137,22 @@
137
137
  ```
138
138
  先程同様、開発ツールでも読み込まれていて、見ることができました。ですが、目次は表示されていません。この、footer.phpに書き込むのとPHPに書き込むので、何か違う点はあるのでしょうか?
139
139
 
140
+
141
+ 2018/7/12 17:55 更に追記です。
142
+ footer.phpのコードを一つずつ消してどこの部分が読み込まれていないか確認したところ、以下の部分を削除すると表示されず、他の部分を削除しても読み込まれました。
143
+ ```PHP
144
+ <script type="text/javascript">
145
+ (function($){
146
+ $('#toc').toc({
147
+ 'selectors': 'h3', //目次として表示する要素のCSSセレクターを指定
148
+ 'anchorName': function(i, heading, prefix) { //アンカーネームのカスタマイズ
149
+ return prefix+i;
150
+ },
151
+ });
152
+ })(jQuery);
153
+ </script>
154
+ ```
155
+
140
156
  ### 試したこと
141
157
 
142
158
  最初はヒアドキュメントに全て書き込んでいましたが、これではJqueryが読み込めなかったので、二回目のように分けて読み込みするようにしましたが、結果は変わりませんでした。

1

新たに試したコードを追記しました。

2018/07/12 11:33

投稿

mio_murata
mio_murata

スコア8

title CHANGED
File without changes
body CHANGED
@@ -88,14 +88,54 @@
88
88
  }
89
89
  add_action('wp_head', 'jquery_my_plugin');
90
90
  ```
91
-
91
+ プラグインのフォルダの構成
92
92
  ```
93
93
  my-plugin
94
94
  -my-plugin.php
95
95
  -js
96
96
  --toc.min.js
97
97
  ```
98
+ 以下、追記です。
99
+ こちらはfooter.phpの</body>の直前に追加した内容です。これだと正しく目次が表示されます。
100
+ ```php
101
+ <div id="toc"></div>
102
+ <script src="https://example.com/wp-content/themes/Example/js/toc.min.js" type="text/javascript"></script>
103
+ <script type="text/javascript">
104
+ (function($){
105
+ $('#toc').toc({
106
+ 'selectors': 'h3', //目次として表示する要素のCSSセレクターを指定
107
+ 'anchorName': function(i, heading, prefix) { //アンカーネームのカスタマイズ
108
+ return prefix+i;
109
+ },
110
+ });
111
+ })(jQuery);
112
+ </script>
113
+ ```
114
+ その後、また新たにいくつかの方法を試しました。まず、Jqueryの読み込みの方法を以下のようにしました。
115
+ ```PHP
116
+ function load_scripts2(){
117
+ wp_enqueue_script(
118
+ 'toc2',
119
+ plugins_url('js/toc.js', __FILE__ ),
120
+ array( 'jquery' ),
121
+ filemtime( plugin_dir_path( __FILE__ ) . '/js/toc.js' ),
122
+ false
123
+ );
124
+ }
125
+ add_action( 'wp_enqueue_scripts', 'load_scripts2' );
98
126
 
127
+ function load_scripts(){
128
+ wp_enqueue_script(
129
+ 'toc',
130
+ plugins_url('js/toc.min.js', __FILE__ ),
131
+ array( 'jquery' ),
132
+ filemtime( plugin_dir_path( __FILE__ ) . '/js/toc.min.js' ),
133
+ false
134
+ );
135
+ }
136
+ add_action( 'wp_enqueue_scripts', 'load_scripts' );
137
+ ```
138
+ 先程同様、開発ツールでも読み込まれていて、見ることができました。ですが、目次は表示されていません。この、footer.phpに書き込むのとPHPに書き込むので、何か違う点はあるのでしょうか?
99
139
 
100
140
  ### 試したこと
101
141