「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
検索の際の「不正なクエリ」を表示しないようにする
MTQに以下のような質問がありました。
mt-search.cgiでサイト内検索を行う際に、検索窓に全角・半角スペースや半角ダブルクォーテーションマーク、記号を入力するとMTのエラー画面(『不正なクエリ―です』)に遷移してしまいます。
例えばサイトトップへリダイレクトさせたり、元の画面にリダイレクトさせたり、できればMTのエラー画面を出さないようにしたいのですが、可能でしょうか。
そこで、Movable Typeのコアを直接に書き換えて対処する方法を紹介します。
mt-search.cgiでの検索処理の本体は、Movable Typeのインストール先→「lib」→「MT」→「App」ディレクトリにある「Search.pm」というファイルで行われます。
Movable Type 6.0.4の場合、このファイルの中で、2か所を以下のように書き換えます。
「リダイレクト先」の部分を、リダイレクト先ページのアドレスに置き換えます。
なお、Movable Type 6.0.4より前のバージョンの場合、書き換える行の位置が若干異なりますので、同様の箇所を検索してください。
442行目付近
書き換え前
return $app->errtrans( "Invalid query: [_1]", $app->errstr ) unless defined $count;
書き換え後
return $app->redirect('リダイレクト先') unless defined $count;
530行目付近
書き換え前
return $app->errtrans( 'Invalid query: [_1]', encode_html($search_string) ) if ( ( !$parsed || !(%$parsed) ) && !$app->param('archive_type') );
書き換え後
return $app->redirect('リダイレクト先') if ( ( !$parsed || !(%$parsed) ) && !$app->param('archive_type') );