質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1262閲覧

wordpressに実装した検索機能がループ処理してしまうエラー

welcome

総合スコア10

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/01/19 14:07

前提

wordpress内の検索機能で
検索にヒットしないフリーワード検索をかけるとループしてしまうエラーが起こる

実現したいこと
検索にヒットしないキーワードで検索かけたときに起こるループ処理を起こらなくしたい。

wordpressに検索機能を実装しました。
ここまで判明しているのは、ループが起きてしまうのは、検索結果が0件のものです。
検索結果が最低1つでもあるのもに関してはループ処理は出ていません。
条件文の処理として0件のものは”検索結果がありませんでした”と表示させています。
事実、”検索結果がありませんでした”とは表示されるもののループ処理が止まりません。
この場合、見るべきポイントとしては、どこになりますか?

urlを取得してきているjavascriptのファイルなのか。
検索結果を表示しているphpのファイルなのか。
はたまたどこか違う場所なのか。。。
解決方法、アプローチの仕方の見当がつかなくて困っています。

javascriptのコード//本来ならば $(".searchBtn").click(function(event) { keyword = $("#keyword").val() if(keyword.length > 0){ keyword_query = "keyword=" + keyword + "&"; } else{keyword_query = ""+ "&";} window.location.href =  $(this).attr("host") +"?" + keyword_query;

php

1ソースコード 2<div class="result"> 3 <?php if(count($list)): ?> 4 <?php foreach($list as $l): ?> 5 <?php //var_dump(wp_get_post_terms($l["id"],"search-key-tag")[0]); ?> 6<a href="<?php echo $l['href']; ?>"> 7<?php if( preg_match( "/default.png/",$l['icatch'][0])):?> 8<img class="icatch" src="<?php echo get_template_directory_uri(); ?>/img/thumbnail.png" alt="<?php the_title();?>"> 9 <?php else:?> 10<img class="icatch" src="<?php echo $l['img'][0]; ?>" alt="<?php echo preg_replace("/(.+)/","",$l['title']); ?>"> 11 <?php endif;?> 12 <div class="txt"> 13 <ul class="area"> 14 <li><span><?php echo $l['area']; ?></span></li> 15 <li><h3><?php echo preg_replace("/(.+)/","",$l['title']); ?></h3></li> 16 <?php $common_cat_list = wp_get_post_terms($l["id"],"common-cat") ?> 17 <?php $facility_cat_text = "" ?> 18 <?php foreach ($common_cat_list as $key => $value): ?> 19 <?php //var_dump($key["parent"]); ?> 20 <?php if($value->parent == 15): ?> 21 <?php $facility_cat_text .= $value->name ."," ?> 22 <?php endif; ?> 23 <?php endforeach ?> 24 <?php //var_dump($facility_cat); ?> 25 <li><span>検索結果:</span><?php echo rtrim($facility_cat_text,",") ?></li> 26 <!-- <li><span>検索結果:</span><?php // echo $l['type']; ?></li> --> 27 <li> 28 <div class="bottom"> 29 <ul> 30 <?php $incidentals = wp_get_post_terms($l["id"],"search-key-tag") ?> 31<?php if(count($incidentals)): ?> 32 <?php foreach($incidentals as $i): ?> 33 <li class="setubi-icon"><?php echo $i->name; ?></li> 34 <?php endforeach; ?> 35 <?php endif; ?> 36 </ul> 37 <img src="<?php bloginfo('template_directory'); ?>/img/link-arrow.png" alt=""> 38 </div> 39 </li> 40 </ul> 41 </div> 42 </a> 43 44 <?php endforeach; ?> 45 46 <?php elseif($list==0): ?> 47 <p>検索結果はありませんでした//検索結果0でも表示されない</p> 48 <?php else: ?> 49 <p>検索結果はありませんでした//検索結果0のときに表示される</p> 50 <?php endif; ?> 51 </div> 52```phpここまで 53 54 55 56### 試したこと 57ループ処理を終わらせるために 58break; 59return; 60などを書き加えた。が変化なしでした。。。 61 62 63 64 65### 補足情報(FW/ツールのバージョンなど) 66wordpress ver4.9.8 67php 5.6 68jQuery 1.8.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/20 08:24

「ループ処理」とおっしゃっているのは、PHPコードでいうとどこでしょうか?
welcome

2019/01/20 16:18

コメントありがとうございます! おそらくループ処理をしているのではないかと考えています。 どこがループ処理なのかはいまいち把握できていません。
CHERRY

2019/01/22 01:04

> 検索にヒットしないフリーワード検索をかけるとループしてしまうエラーが起こる エラーメッセージを具体的に記載していただけないでしょうか? Webサーバーのログファイルにエラーが出ていたら、そのメッセージも記載していただけないでしょうか?
退会済みユーザー

退会済みユーザー

2019/01/22 03:26

「おそらくループ処理をしている」と考えた根拠、どういう現象が起きたからループしていると考えたのかを具体的に質問文に記載していただけますか。
退会済みユーザー

退会済みユーザー

2019/01/22 03:28

また、質問文に記載しているコードでは「$list」が突然出てきていますが、この$listはどのような値が代入されているのでしょうか。
welcome

2019/01/22 12:08

urlにゴミデータが付与されていたようで そのゴミデータを削除したら、エラーが解消できました。 コメントくださった方々ありがとうございました。
退会済みユーザー

退会済みユーザー

2019/01/22 13:01

解決したのであれば、解決方法を回答欄に書き、質問を解決済みにしていただけますか?
guest

回答2

0

データベースに保存されていたデータのゴミデータを削除することで
検索機能が正常に戻りました。

投稿2019/01/22 14:46

welcome

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

データベースに保存されていたデータのゴミデータを削除することで
検索機能が正常に戻った。

投稿2019/01/22 14:44

welcome

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問