フォーラムへの返信

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 Duong_phu

    (@duong_phu)

    ご指摘ありがとうございます。ローカルでミラーサイトを作るなどして対応しようと思っています。
    データベースエラーは一応解消されましたので、解決済みとさせていただきます。
    どうもありがとうございました。

    トピック投稿者 Duong_phu

    (@duong_phu)

    公開中のサイトなので、すぐにはデバッグモードにできないのですが、Debug Barプラグインでcチェックすると、データベースエラーは出ていないのですが実行されたSQL文は上記のSELECT DISTINCT以下と同様でした。

    はい、固定ページや投稿、カスタム投稿はWordPressのクエリを使っていますが、WordPressのクエリは使わずに自作テーブルへの検索用テンプレートには自分でSQL文を作って実行しています。

    トピック投稿者 Duong_phu

    (@duong_phu)

    ありがとうございます。

    search.php の振り分け前にエスケープのためのコードを記述していたのですがうまくいかず、function.php に init のフックとして以下のように記述すると、エラーは表示されなくなりました。

    function escape_single_quote_search_query() {
    	$_GET['s'] = trim( $_GET['s'] );
    	if ( isset( $_GET['s'] ) ) {
    	  if (preg_match("/'/", $_GET['s'])) {
    			$_GET['s'] = str_replace("'", "'", $_GET['s']);
    		}
    	}
    }
    add_action( 'init', 'escape_single_quote_search_query' );

    ただ、
    実際はヒットするデータがあっても、検索結果には出てこないのです。
    (検索対象テーブルに「h's」とあっても出てこない)
    表示されなくなったエラーも、これで解決したのかどうか不安です。

    どうすればいいのでしょうか。。

3件の返信を表示中 - 1 - 3件目 (全3件中)