Program, Wordpress

PHP7.2にして、Wordpressを動かして見ると、

count(): Parameter must be an array or an object that implements Countable in …(ファイルパス)/wp-includes/post-template.php on line 284

なワーニングメッセージが。

調べてみるとPHP7.2 になって count関数 が変わった模様。
PHP 公式マニュアル

バージョン 説明
7.2.0 count() will now yield a warning on invalid countable types passed to the array_or_countable parameter.

引数が配列かカウントできるオブジェクトじゃないとワーニングを出しますよー。
ってことになったらしい。

で、件の post-template.php では

if ( $page > count( $pages ) ) // if the requested page doesn't exist
	$page = count( $pages ); // give them the highest numbered page that DOES exist

と $pages がどんなオブジェクトがわからないまま、count関数の引数に使われているのでワーニングが出た模様。

$pages が空(NULL)の場合にワーニングが出るので、count関数を使う前に$pagesが空かどうかのチェックを入れればOK。
空の場合は0を入れてあげます。

if ( ! empty( $pages )) {
    if ( $page > count( $pages ) ) // if the requested page doesn't exist
    	$page = count( $pages ); // give them the highest numbered page that DOES exist
} else {
    $page = 0;
}

コンピュータプログラムの世界では 空(NULL) = 0 かどうかか環境依存だったりするので、ややこしいですね。



ひとまず該当箇所を修正して、ファイルを上書きすればワーニングは出なくなります。

Google / Android, ハードウェア


auの前身IDOの頃からずっと契約し続けていましたが、数ヶ月前に MNPでauから離れました。

長期契約のメリットが無いとか、料金が高いとか、使いたいと思う端末が無いとか、いろいろな複合的な不満が溜まっていて離れました。

オペレータのお姉さん(?)には18年くらい利用している云々、散々引き止められましたが、決意は固く、「いらない」「結構です」と断りまくってMNP番号を取得しました。

移動先は大手キャリアではなく、ネット回線でも利用している IIJ さんのみふぉん。
[ IIJmio ]

端末は何にしようかいろいろ悩みましたが、SIMフリーなので、いつでも本命に変えられるということで最初は安価な端末
[ SHARP AQUOS SH-M05 ]
にしました。

通話をする分にはなんの問題もないですし、モバイルSuicaもきちんと使える端末を選びましたし、今の所なんの不都合もありません。
唯一キャリアのメールアドレスが使えないことですが、そもそもキャリアメールは極々一部でしか利用していなかったので、それらを通常利用のメールアドレスに変更することで支障なく利用できてます。

SIMフリー環境になったことで、今度出るGoogle 製の Pixel3 は気になるところですが、安価とはいえ端末を替えてまだ数ヶ月なので、乗り換えるかどうか悩みどころ。



正直スマホより、近日発表されるという噂の新しいiPadのほうが気になっていますw

Webサービス, Wordpress

昨今、Webサイトの常時SSL化は必須の流れになってきています。
その流れに沿って自分の管理しているサイトもSSL化していますが、wpXサーバーでのWordpressサイトの独自SSL化でハマった箇所があったのでメモ。

wpXでの独自SSL化は管理画面のメニューにもあり、マニュアルもあるので大半は流れに沿っていけば問題ないかと思います。
[ 独自SSL設定 | wpXクラウド – WordPress専用のクラウドサービス ]

その中でハマったのが、マニュアルに沿って一通り設定が完了し、サイト自体もSSL化がされた鍵マークがついたので訪問者が閲覧する分には問題ありません。

が、Wordpressの管理画面内、一般設定のWordpressアドレスとサイトアドレスが http:// のままなのです。
直接編集しようにもグレーアウトされ入力は不可となっています。
一応、phpMyAdmin でデータベース内のデータを確認してみると、こちらは optionテーブル内の home と siteurl はきちんとhttpsに変わっています。
wpXのSSL化補助機能を使った結果できちんと反映されています。
が、WPの管理画面では反映されていない。なぜ?why?

いろいろ調べてみるとwp-config のファイル内で siteurl や home が定義されていると管理画面内ではグレーアウトするようです。

なるほど。wp-config で定義されている可能性があるな。
しかしwpX サーバーへFTPアクセスできるフォルダは wp-content フォルダ。 wp-config があるのはその一つ上のフォルダ。アクセスできんじゃないか!!
と思ったが、ちゃんと解決策もあるようで、wpXのFTP接続設定のオプションで接続先フォルダを変更できるものがあったようだ。

FTPオプションを変更して、wp-config にアクセスして(これもそのままじゃ権限の関係で編集できないので、アクセス権の変更が必要です)、案の定 home と siteurl が定義されていたので https に変更して、ようやくひと段落です。

原因が分かればさくっと解決できたのだが、何事もその原因追求に時間と手間がかかるのよねー。

そもそもSSL化補助機能で wp-config の変更もやってくれればよかったのにね。

Google / Android


スマホは HTC の HTL23 を3年ほど使っているのだが、バッテリーが怪しくなってきた。

帰省の移動中、音楽を聴きながら、電子書籍アプリ(BookWalker)でラノベを読んでる最中にブツンと画面がブラックアウト。
電源長押しで再起動させてみると、先ほどまで50%以上あったバッテリーがほんの2,3%になってまともに使えない状態に。
ちょうどモバイルSuicaを使って電車移動中だったので、完全に電源が入らないとSuicaが反応してくれないので、どうしようかなぁと焦ったが、しばらくすると10%くらいに戻っていたのでその後は改札を出るまで極力いじらずに過ごして、無事改札は出れた。一安心。

にしても、最近、バッテリーの減りが早い気もしてたが、移動の途中に切れてしまう恐怖を味わうと、そうのんきにしていられない。



で、買い替え先なのだが….今利用しているキャリアのauでは使いたいと思う端末が無い。
ずっとHTCの端末を使っていたので、 HTC U11 が一応あるといえばあるのだが、一番期待していた、ソーラーレッドカラーがなし。
そのうち追加カラーで出るかなーと思っていたのだが、フリーSIM版で出るということでメジャーキャリアに出ること無いよね。

ほかのペリアやサムスンやアクオスもなんかねー。ということで、いっそ格安SIMのほうへ行ってみようかと思い始めています。

キャリアに縛られないのであれば、前述の HTC U11 のソーラーレッドも行けるな。

というか、HTCであれば、先日Googleから発表された AndroidOne X2 にも行けるな。

[X2 | HTC 日本 ]

auのキャリアメールが使えなくなるので、それで登録しているサービス等々の変更は面倒ではあるが、かなり心動いてきたw



先日、auからUQへの乗り換えが多くて、同一グループ内で客の取り合い云々というニュースがあったが
[「auの客、取らないで」 カニバリKDDIの焦り  :日本経済新聞 ]

自分もその波に乗りそう。UQには異動しないが。
使いたい端末があってこそのキャリアなので、前述のソーラーレッドのHTC U11の件といい、結局 au は魅力的な端末を用意できないからそういうことなんだよ。と言いたい。

au は IDO のころから20年くらい使い続けてきたけれど、ついにお別れが近いかもね。

IT関連


昨年あたりから、Let’s Encrypt を利用した無料SSLサービスを行うレンタルサーバー屋さんが出てきましたが、さくらインターネットでも 10月17日 よりサービスを行うようです。

[ 無料SSLサーバー証明書 Let’s Encrypt – レンタルサーバーはさくらインターネット ]

当ブログもさくらインターネットを利用しているので、サービス開始次第、導入しようかなーと思います。