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

質問編集履歴

1

文章修正と情報追記

2021/11/09 16:55

投稿

mochitapi
mochitapi

スコア0

title CHANGED
File without changes
body CHANGED
@@ -16,13 +16,22 @@
16
16
  ページャーを使っているので、
17
17
  ajaxの指定は「get」を使っています。
18
18
 
19
+ 流れとしては、
20
+ 1、custom-search.phpで記事表示と検索
21
+ 2、function.phpでajaxの読み込みとワードプレス用のショートコード[search]の作成
22
+ 3、search.jsでajaxのプログラム
23
+ 4、固定ページで全てを表示
24
+
25
+ このような流れです。
26
+
19
27
  該当ソースコードも貼りますので、
20
- 有識者の方がいらっしゃれば何か助言をくださいませ
28
+ 有識者の方がいらっしゃれば何か助言をくださいませんか?
21
29
 
22
30
  何卒よろしくお願いいたします。
23
31
 
32
+ 参考ソースコードは下記です。
33
+ https://webfun-style.com/wordpress-custom-search/
24
34
 
25
-
26
35
  ### 発生している問題・エラーメッセージ
27
36
 
28
37
  ```
@@ -168,6 +177,27 @@
168
177
  ### 該当のソースコード(function.php)
169
178
 
170
179
  ```
180
+ // ショートコードで絞り込み検索を設置する関数
181
+ function shortcode_search() {
182
+ ob_start();
183
+ get_template_part('custom-search');
184
+ return ob_get_clean();
185
+ }
186
+ add_shortcode('search', 'shortcode_search');
187
+
188
+ // ajax読み込み
189
+ function my_enqueue() {
190
+ // 特定のページのみで読み込む
191
+ if ( is_page( 'dounyuuzirei' ) ) {
192
+ // Ajaxの処理を書いたjsの読み込み
193
+ wp_enqueue_script( 'ajax-script', get_stylesheet_directory_uri().'/search.js', array('jquery'), null, true );
194
+ // 「ad_url.ajax_url」のようにしてURLを指定できるようになる
195
+ wp_localize_script( 'ajax-script', 'ad_url',array( 'ajax_url' => admin_url( 'admin-ajax.php') ) );
196
+ }
197
+ }
198
+ add_action( 'wp_enqueue_scripts', 'my_enqueue' );
199
+ add_action( 'wp_enqueue_scripts', 'my_enqueue' );
200
+
171
201
  // Ajaxで検索結果を表示する関数
172
202
  function custom_search() {
173
203
  $nonce = $_REQUEST['nonce'];
@@ -186,20 +216,6 @@
186
216
  ### 該当のソースコード(search.js)
187
217
 
188
218
  ```
189
- jQuery(document).ready(function($) {
190
- $.ajax({
191
- type: "POST",
192
- url: ad_url.ajax_url,
193
- data: { 'action' : 'my_action' } // 「wp_ajax_*」の「*」がaction名となる
194
- }).done(function(data){
195
- console.log(data);
196
- console.log("done...");
197
- }).fail(function(XMLHttpRequest, textStatus, error){
198
- console.log(error);
199
- console.log(XMLHttpRequest.responseText);
200
- });
201
- });
202
-
203
219
  jQuery(function($){
204
220
  function customSearch(){
205
221
  // 1. フォームのデータを生成
@@ -239,7 +255,9 @@
239
255
  ```
240
256
  ### 試したこと
241
257
 
258
+ ajaxの書き方について検索
242
- こに問題に対して試したこと記載てください。
259
+ 400エラーが起る原因調査
260
+ 色々試したが、原因解決に至らず
243
261
 
244
262
  ### 補足情報(FW/ツールのバージョンなど)
245
263