2018-01-03

Googleカスタム検索結果が表示されなくなった

ご存じの方もいたかもしれませんが、いつ頃からかうちの「サイト内検索」(←)が使用できなくなってました。検索をしてもエラーメッセージを吐いて検索結果が表示されません。

どうやら、先日Googleのカスタム検索の仕様が変更になり、これまで使用していたHTML(V1コード)でのカスタム検索が使用できなくなったのが原因っぽいです。ネット上でも情報が少なくて特定に苦労しました…

結局標準のJavaScript形式のものに変更しました。導入についてはこちらのサイトが参考になりました。

検索窓のデザインについては同じくこちらが参考になります。

うちのサイトで使っているテンプレートだと綺麗に表示されませんでしたが、CSSを多少いじることで安定しました(以下のコードのハイライト行を追加)。

#gsc{
    width:100%;
    margin:0 auto;
    position:relative;
}
#gsc td {
    border: none;
}
#gsc .gsc-control-cse,
#gsc .gsc-control-cse-ja,
#gsc .gsib_a{
    margin:0 !important;
    padding:0 !important;
    font-size:12pt !important;
}
#gsc td.gsib_a{
    margin:0 !important;
    padding:0 !important;
}
/* テキスト入力フォームとボタンの位置 */
#gsc table.gsc-search-box td,
#gsc table.gsc-search-box input {
    vertical-align: top !important;
}
/* テキスト入力フォーム */
#gsc input[type="text"]{
    border: 1px solid #dddddd !important;
    height:25px !important;
    margin-top: 100px;
    font-size:10pt !important;
    ime-mode:active;
}
#gsc input[type="text"]:focus {
    border: 2px solid #b2e0eb !important;
    outline: 0;  /*safariの自動フォーカスを切る */
}

/* テキスト入力フォームの影を消す */
#gsc #gsc-iw-id1{<
    border:none !important;
}
/* テキスト入力フォームの背景画像位置調整 */
#gsc #gs_tti0 input{
    background-position:5px 5px !important;
}
/* ボタンの色 */
#gsc input.gsc-search-button {
background: #000099 !important;
background: -ms-linear-gradient(top,  #008ee1 0%,#008ee1 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#008ee1',endColorstr='#008ee1',GradientType=0 ); /* IE6-9 */
border: 1px solid #0000cc !important;
}
/* ボタンの位置調整と角丸消し */
#gsc .gsc-search-button{
    margin:0 0 0 -16px !important;
    border-radius:0px;
}
/* 入力時に出る「×」ボタンの位置調整 */
#gsc a{
    background-color:transparent;
    border:none;
}
/* 入力時に出る×ボタン -- Firefox位置調整 -- */
#gsc .gsib_b span{
        box-sizing: border-box;
   -moz-box-sizing: border-box;
        padding:2px 0 0 0;
}

これで完成…のはずが、今度は検索結果が表示されません。主な症状は以下の通り。

  • エラーメッセージも表示されず、検索結果のページは真っ白(空っぽ)になる
  • レイアウトを「2ページ」以外にすると正常に表示される
  • 検索結果のページを何度か更新すると、正常に表示されることもある(確率的には2割程度)

正常に表示されることもあるということは、設定のやり方自体は間違っていないわけで、何が原因なのかかなり悩んだのですが、今度はこちらのサイトにヒントが。

どうやらレイアウトを「2ページ」にした場合、同じページに、Googleが提供する「検索ボックスコード」と「検索結果コード」を表示すると、同じスクリプトが2回書かれることで干渉が起こり、表示がおかしくなるみたいです。

結局、重複するスクリプト部分を削り、

<script>
  (function() {
    var cx = '【検索ID】';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>
<gcse:searchbox-only></gcse:searchbox-only>
<gcse:searchresults-only></gcse:searchresults-only>

とすることで、きちんと検索結果のページに、検索ボックスと検索結果とが表示されるようになりました。

うまくカスタム検索が表示されない方は試してみてください。


2016-01-11

Window10へアップグレードしました アップグレード促すポップアップうっとうしかったし…

今日は時間がありましたので、PC周りをいろいろと整理しました。

  • Windows10へのアップグレード

タブレットの方を試験的にWindows10にしていたのですが、あまり不具合もなかったので、メインマシンの方もアップグレードしました。一応念のためにデータのバックアップを取り、デフラグもしてからアップグレードを始めたのですが、1時間くらいで無事終了しました(バックアップやデフラグを含めると数時間かかってます)。

    • マルチモニタの壁紙

マルチモニターでそれぞれのモニタに別々の壁紙を設定するのが面倒になってるんですよね…。設定へたどり着くには、エクスプローラーのアドレスバーに、

control /name Microsoft.Personalization /page pageWallpaper

と入力して下さい。

    • アプリケーションの文字がにじむ

Windows10に対応していないアプリの場合、アプリの文字がにじむことがあります。特定のアプリだけにその問題が生じている場合、アプリケーションのアイコン上で【右クリック→プロパティ】を開き、

設定1

【高DPI設定では画面のスケーリングを無効にする】にチェック。

その下の【すべてのユーザの設定を変更】をクリックし、

設定2

【高DPI設定では画面のスケーリングを無効にする】にチェック。

これで大丈夫です。

  • サイト内検索の変更

これまでこのサイトでは、サイト内検索用にWordpress標準の検索を設置していたのですが、死ぬほどダサくて使いづらかったので、Googleカスタム検索に頼ることにしました。

検索フォーム ←こんな感じになりました

詳しい方法はこちらを参考にしました。

Googleカスタム検索導入手順と導入する時につまづいたこと。 | 極楽ひだまり保育園

僕は検索フォームのデザインをいじるために、コードをJavaScriptではなくHTMLで取得していますが(コード取得時に「高度な機能を使用する場合は、代わりに V1 コードを取得します。」を選択する)、あとはほとんどかわりません。

これでPHPではなくHTMLで作成されたページ(星界事典など)も検索の対象になっています。

  • 私本管理Plus 6.0.0にアップデート

蔵書管理に使用している私本管理PlusがWindows10に対応していたので、アップグレードしました。ナイスタイミング。

EKAKIN

あとは年賀状などの郵便物を整理したり、確定申告の準備をしたり、ワールドトリガーのビデオ(全60話)を見て、12話で力尽きたりしてました。充実してますね!