IPアドレスの情報を調べるには「ipinfo.io」

IPアドレスの情報を調べる際に昔は「IPひろば」を利用していたけど、最近はほとんどの情報がマスキングされてしまい、お金を払わないと見えない状態になっている。

ipinfo.io」というサイトならASN、会社名、国・地域などが無料で調べられる。

使い方は凄く簡単で、検索フォームに入力するか、URLの末尾にIPアドレスをつけてアクセスするだけ。

例えば8.8.8.8を調べるには
https://ipinfo.io/8.8.8.8

digやwhoisと組み合わせれば業務に必要な情報は大体分かります。

get_page_by_path()で投稿型の子記事を取りたい

投稿型を階層構造に設定しても、なぜかURLは階層構造になりません。それは良いとして(ダメな人はこちら
次のようにget_page_by_pathで子記事が取得できるのかと思いきや

$get_page = get_page_by_path( '子記事のスラッグ', OBJECT, 'post' );

だめでした。

投稿型が階層構造になっている場合、URLが階層構造ではなくても「親スラッグ/子スラッグ」と指定する必要があるようです。

$get_page = get_page_by_path( '親記事のスラッグ/子記事のスラッグ', OBJECT, 'post' );

色々な事情があり、こうしました。

//$get_page = get_page_by_path( '子記事のスラッグ', OBJECT, 'post' );
$get_posts = get_posts('post_type=post&posts_per_page=1&name=子記事のスラッグ');
$get_page = $get_posts[0];

OPPOでバックグラウンドでもGPSアプリが使えるように設定する

OPPO CPH2099などの一部の Android 端末で、YAMAP などの GPS アプリの軌跡が正しく記録されない場合は次の設定が必要です。

アプリのバックグラウンドアクティビティを許可

1.歯車マークをタップして「設定」を開く

2.アプリ管理を開く

3.アプリリストからYAMAPなどのGPSアプリの設定を開く

4.バッテリー使用量をタップ

5.バックグラウンドアクティビティを許可をONにする。

以上の設定でバックグラウンドでもアプリが動き続けるようになるため、画面を消しても軌跡を正しく記録することができるようになります。

今回はYAMAPを例にしましたが、他のGPSアプリでも同様の設定を行うことで対応可能です。

WordPressで記事を更新すると「辿ったリンクは期限が切れています。」の解決法

事象

カスタムフィールドをゴリゴリ使っているテーマで記事を更新すると「辿ったリンクは期限が切れています。」と表示されてしまう現象が発生した。

原因

原因はカスタムフィールドが増えたことによってフォームデータの送信数が「max_input_vars」の値を上回ってしまったため。

記事更新時にFirefoxのインスペクターでフォームデータの生データをコピーし、「&」をカウントしたところ、1000を超える変数があった。

phpinfo();を見ると「max_input_vars」の値は1000に制限されている。これはPHP 5.3.9から実装されたディレクティブでデフォルトは1000。

解決法

解決方法は「max_input_vars」の値を増やします。

変更例は次の通りですが、サーバー環境によって弄れなかったりするので各自調べてください。

php.ini または .user.ini

max_input_vars = 2000

.htaccess

php_value max_input_vars 2000

この値ですが、闇雲に増やせば攻撃手段を提供することになるので、必要な数だけ増やすべきだと思いますが、デフォルトの1000という数字も適当そうなのであまり神経質になる必要は無いと思います。

MW WP Formのセレクトボックスを必須にしてエラー文言を変更する

セレクトボックスのコードは次のようにする。

[mwform_select name="pref" children=":選択してください,北海道,青森県,岩手県,宮城県,秋田県" post_raw="true"]

これによって未選択の場合、valueが空になるため、選択しているか否か判別できるようになる。これで「バリデーションルール」の「必須項目」にチェックを入れればバリデーションは効くが、表示されるエラー文言が「未入力です。」となってしまう。

そこで次のコードをfunctions.phpに記述して文言を変更する。xxxの部分はフォームID

function my_validation_rule( $Validation ) {
$Validation->set_rule(
'pref',
'noEmpty',
array( 'message' => '選択されていません。' )
);
return $Validation;
}
add_filter( 'mwform_validation_mw-wp-form-xxx', 'my_validation_rule' );

やよいの青色申告オンラインで国民年金保険料と国民健康保険の支払額を入力する

うっかりスキップして大損するところだったので書いておきます。

メインメニューの確定申告をクリック。ずーっと進めていく。

「4-1. 所得控除の選択」まで進んだところで「社会保険料控除を受けますか?」の「はい」にチェック。次へ進む。

「源泉徴収票に記載された社会保険等の金額以外に申告する社会保険料はありますか?」で「はい」を選択します。

国民年金保険料と国民健康保険の二つを控除したいので、「~社会保険料を何か所に支払っていますか?」で「2か所」を選びます。

「社会保険の種類」のドロップダウンから「国民年金」と「国民健康保険」を選んで金額を入力します。

particles.jsの使い方 複数設置する

particles.jsデモ

particles.jsを設置する

particles.jsをダウンロードし、次のように設置。

<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="js/particles.min.js"></script>

設定ファイルを作成する

particles.jsのサイトの右サイドバーのパラメーターを弄ってカスタマイズ。Download current configをクリックして設定ファイルをダウンロード。

js/particlesjs-config.jsonという設定ファイルを読み出し、#js-particlesに描写します。

<script>
particlesJS.load( 'js-particles', 'js/particlesjs-config.json');
</script>

particles.jsを複数設置する

particles.jsを複数設置するには次のようにします。

<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="js/particles.min.js"></script>
<script>
particlesJS.load( 'js-particles', 'js/particlesjs-config.json');
particlesJS.load( 'js-particles-2', 'js/particlesjs-config-2.json');
</script>

#js-particlesと#js-particles-2にそれぞれ異なる外観の効果を描写しています。

particles.jsデモ

 

php リモートファイルのサイズを取得する

function get_filesize($url) {
if( !$fp = @fopen($url,'rb') ) return false;
static $regex = '/^Content-Length: *+\K\d++$/im';
if ( isset($http_response_header) && preg_match($regex, implode("\n", $http_response_header), $matches) ) {
$filesize = (int)$matches[0];
} else {
$filesize = strlen(stream_get_contents($fp));
}
$sum = $filesize / 1024 / 1024;
$sum = round( $sum, 2).'MB';
return $sum;
}
echo get_filesize('https://example.jp/img/test.jpg');