ウインドウサイズ変更後に処理するjs

var timout;
window.addEventListener( ‘resize’, function(){
  clearTimeout(timeout);
  timout = setTimeout(function(){
    //処理内容
  },300);
});

「//処理内容」の所にlocation.reload();を入れるとウィンドウサイズ変更後にリロードされるが、スマホではスクロールするたびにリロードしてしまう。

スマホでウインドウサイズ変更後のリロードが不要なら、横幅を取って分岐させる。

↓PC(幅737px以上)のみウインドウサイズ変更後にリロード

var timout;
window.addEventListener( ‘resize’, function(){
  clearTimeout(timeout);
  timout = setTimeout(function(){
    if( window.innnerWidth > 736 ) { location.reload(); }
  },300);
});

Site Kitが使えない?Site Kitの導入方法

Site KitとはSearch Console、Analytics、Adsense、PageSpeed Insights等を連携してWordPress管理画面からそれらの情報を見やすく表示するWordPressプラグインです。めっちゃ便利やんけ。

早速インストールしてみた。

一応Search Consoleはドメイン直下にアップしたhtmlで認証されていて使える状態だったんですが、Site Kitではmetaに認証コードが無いとダメみたいです。

Search Consoleの設定→所有権の確認からHTMLタグをコピーして

WordPressの管理画面のテーマエディタでheadタグ内に貼りつけました。テーマエディタが無効になっている場合はFTPなどを使用してローカルで編集する必要があります。

もう一度Site Kitのウィザードを起動すると所有権が確認できました。

あとはポチポチと連携するだけです。

Raspberry Pi OSをインストール

4年前に購入してちょっと遊んでから3年くらいホコリを被っていたRaspberry Pi3 Model Bに改めてRaspberry Pi OSをインストールしてみます。

これでPythonと人工知能の勉強をしようと思います。

Raspberry Pi OSのインストール方法

まず、次のURLからSDカードに書き込むツールをダウンロードします。
https://www.raspberrypi.org/downloads/

インストールするとこのような画面が立ち上がります。

まず、「SD Card」を対象のデバイスに選択します。

書き込み前に「Operating System」のドロップダウン中の「Erase」を選択してmicroSDカードをフォーマットしておくといいでしょう。

microSDカードの準備が整ったら書き込みます。その際に、「Operating System」で任意のOSを選択すると自動的にダウンロードして書き込んでくれるようです。
自分はimgをダウンロードしていたのでファイルを選択しました。

書き込みが完了しました。

これで起動準備完了です。
RaspberryPi3にmicroSDを差し込み、モニター、キーボード、マウスを繋げれば起動して操作できる状態です。

環境に合わせて初期設定

手動でロケール等の初期設定を行った後、sudo apt updatesudo apt upgradeをして、システムを更新します。

モニターを使わずに済むようにsudo update-rc.d ssh enableでSSHを有効化しておきました。

自分の環境はネットワークはPiもデスクトップも無線LAN接続ですが、Piとデスクトップ間は優先で繋げることにしました。

Piの優先LAN(eth0)のIPアドレスを設定します。sudo ip addr add 192.168.1.123/24 dev eth0

デスクトップ側も優先LANデバイスを同じネットワークセグメント(192.168.1.0/24)のアドレスに設定します。

Windows10はデフォルトでSSHが使用可能のようです。

こんな感じで遠隔操作できるようになりました。

 

MW WP FormにreCAPTCHA v3を導入する方法

まずは、管理画面→プラグインから「reCAPTCHA for MW WP Form」をインストールします。

他のプラグインでのやり方はネットに沢山ありましたが、こちらのプラグインの説明はまだありませんでした。このプラグインならv3が利用可能です。

有効化するとMW WP FormのサブメニューにreCAPTCHA v3という項目が追加されます。

開くとこのような画面が出ます。

次に、GoogleのreCAPTCHAへ移動します。

新しいサイトを登録します。この時reCAPTCHA v3を選びます。ドメインは対象サイトのドメインを指定します。

サイトキーとシークレットキーが生成されるのでこれをコピーします。

WordPressの管理画面に戻り、reCAPTCHA v3の設定画面に先ほどコピーした「サイトキー」と「シークレットキー」を入力して「変更を保存」を押します。

MW Formのフォーム編集ページで次の様にショートコードを追記します。場所はどこでも良い様です。

下部のバリデーションルールの所に「recaptcha-v3」という項目を作り、reCAPTCHA V3にチェックを入れます。

これで完了です。フォームにアクセスすると右下にreCAPTCHA v3のアイコンが表示されて有効化されたことが分かります。

EC-Cube 2.6.x 別サーバに構築した際に正しいID/PWでもログインできない場合

新規インストールなどをしてテーマを反映させ、SQLをインポートするようなやり方では正しいID/PWが使えなくなります。

コピー元のdata/config.php中の「define(‘AUTH_MAGIC’, ‘xxxxxxxxxxxxxxxxxxxxxx’);」も移植してあげるとログインできるようになります。

WordPress カテゴリが複数指定されている場合のカテゴリ除外方法

カテゴリがAとBが設定されている記事で、Aを除外したいけど、Bが設定されている場合は表示したいという場合。

単純なカテゴリの除外であれば、category_not_in等で可能だが、これだとAとBが同時に設定されていた場合、除外されてしまう。

おそらくこのフォーラムの質問者と同じ状況だと思います。

解決方法はtax_queryを使います。

$args = array(
'post_type' => 'post',
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'A', 'B' ),
'operator' => 'AND',
),
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'A' ),
'operator' => 'NOT IN',
),
'relation' => 'OR',
),
);
query_posts( $args );

AとBが設定されている記事と、Aが設定されていない記事を取得します。relation=>’OR’により両方の条件が生きます。

どうやらreCAPTCHAがバイパスされてるらしい

このサイトにはログインフォームやコメント欄にreCAPTCHAを設けていますが、最近自動投稿と思われるスパムが大量発生しています。

reCAPTCHAが解読されているかバイパスされているとしか考えられません。WordPress側の仕様を突いたものなのか、reCAPTCHAに脆弱性があるのか不明です。気味が悪いですね。

reCAPTCHAが外れてしまっているのか試しに認証なしに送信を試みたところ、しっかりエラー表示が出ます・・・

以前スパムコメントの中に、XRumer 19.0 + XEvil 4.0というスパム投稿ツールの宣伝のようなコメントがあり、それによると、「Google ReCaptchaを20~30秒ほどで解決できる」というような説明がありました。スパム業界でそういうツールが出回っていて、reCAPTCHAとイタチごっこになっているのですかね。

投稿者のIPアドレスは様々なので、ブロックは難しいし、スパムの文言も変えてくるのでなかなか対処は難しいですね。ブロックルールを工夫して減らすことくらいしかできません。

EC-CUBE「クーポン管理プラグイン」の500 Internal Server Errorとクーポンが追加できない場合の解決方法

現象を確認したバージョン

EC-CUBE2.12系、クーポン管理プラグイン1.2.2、PHP5.6.40

500 Internal Server Errorの解決方法

EC-CUBE2.12系、クーポン管理プラグイン1.2.2において、プラグインをインストールした後に「コンテンツ管理」→「クーポン管理」へ移動すると、500 Internal Server Errorになりました。フォーラムにも同じ症状の投稿がありましたが、解決方法が書かれていなかったので、こちらに書いておきます。

自分が確認した状況では、サーバーのumaskが適切ではないため、アップロードしたプラグインファイルのパーミッションが666になっていました。

次のファイルをパーミッション644に変更すると500エラーは解決します。

  • /data/downloads/plugin/CouponManage/以下全てのファイル
  • /ecadmin/contents/plg_CouponManage_coupon.php
  • /ecadmin/contents/plg_CouponManage_search_product_id.php

クーポンが追加できない場合の解決方法

「この内容で登録する」ボタンを押しても反応しない場合、次のファイルを修正します。

data/downloads/plugin/CouponManage/templates/admin/contents/plg_couponManage_coupon.tplの51行目

$('#' + target).children().prop('selected', 'selected');

propをattrに修正 

$('#' + target).children().attr('selected', 'selected');

テキストの下にラインを引くCSS

改行があっても横いっぱいにアンダーラインを引く方法。
text-decorationではない方法。
ググってもtext-decorationしかヒットしないのでここに書いておきます

.text {
line-height: 2;
background-image: linear-gradient( 180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 97%, #ddd 97%, #ddd 100% );
background-size: 100% 2em;
}