iPhone 16 Proに機種変!

2年半ぶりにiPhone 13をiPhone 16 Proに機種変更。3世代の進化です。

液晶画面は6.1インチから6.3インチへサイズアップしたけど、それほど大きくなった感はなく、重さも気にならない。

個人的にうれしかったのが付属のUSBケーブル。両端のコネクタはUSB-Cとなり、ケーブルの外被はメッシュに変わっています。使用期間が長くなるほど、ケーブルがボロボロになる傾向があったので、この変更はうれしいですね。

これまで使っていたiPhone 13ですが、今年の2月に機種変するタイミングだったのですが、ちょっとうっかりしていてそれに気づいたのが5月頃。その際iPhone 15に変更するよりも今回のタイミングで新機種にしたほうがよいと思い、今月に至りました。

どのように機種変したかというと、きっかけは先週金曜日に届いたショップからのショートメール。先週金曜日はiPhone 16の発売日で、テレビのニュースでも取り上げられ、「そうだ、機種変しなきゃ!」と思い、すぐに翌日のショップを予約。とりあえずiPhone 16(無印)を取り置きしてもらいました。

予約時間にショップへ行き、まずはiPhone 16(無印)とProの料金確認。2年半ぶりで円安も重なって、毎月の支払いは高くなった感じですね。

1年目の月額2年目以降の月額
iPhone 160円4,000円
iPhone 16 Pro4,000円4,000円
※各月額はざっくりです。

1年目の4,000円/月の有無が基本的な差でした(まあざっくりですが)。これくらいの差額であれば思い切ってiPhone 16 Proでもいいかなと思い、店員さんに在庫を確認するとデザートチタニウムが1台あったので、即決しちゃいました。

iPhone 16 Proはボタンの配置が変更され、慣れるまでは少し戸惑いそうです。日本語に対応したAI機能、早く使ってみたいですね。

Login rebuilderをアップデート、しくった。。。

一昨日から昨日にかけてプラグイン「Login rebuilder」をアップデートし、バージョンが2.8.5になりました。不具合の修正を一度で済ませることができず、申し訳ない感じです。

不具合の原因は、5年前にホスト名の取得を$_SERVER[‘SERVER_NAME’]から$_SERVER[‘HOST_NAME’]へ変更したところまで遡る。この時はサーバー環境によって$_SERVER[‘SERVER_NAME’]が参照できないことが理由だったわけだが、今回は一部のサーバー環境で$_SERVER[‘HOST_NAME’]が参照できないことがあり、それに対し安易な対応してしまったのが大きなミスだった。

もう1つはnamespace。他のプラグインから順次namespaceを使用するように変更しており、Login rebuilderにも適用していた。これだけのためにLogin rebuilderをアップデートするわけにもいかず、他の更新と合わせてアップデートしようと考えていました。そんな感じで、namespaceを適用した後は十分な動作検証ができておらず、今回の初回アップデートで設定ページが何も表示されなくなってしまいました。

昨日はこんな感じの不具合に対してアップデートを繰り返してしまい、この2日間で2.8.3、2.8.4、2.8.5へ。安易な対応と確認不足を深く反省。同じことを繰り返さないように注意しないと。

画像を回転できるようにした!

画像に対してフィルター効果をつけるボタンを実装後、ふと画像を回転(傾ける)ことはできないかと思い、試してみたらできてしまった。

AnglePickerControlコンポーネントの角度インジケーターを大きくし、ドラッグ時にPopoverコンポーネントの外に出にくくし、テキストフィールドでは下キーで0から359へ、上キーで359から0へと切り替わるようにしました。

また上部と下部のマージンを自動的に補正するようにしました。こちらは最終的にレスポンシブ対応を考慮しインラインのstyle要素を追加するかたちに落ち着いた感じに。

さて、画像を回転させた際にマージン補正をしない場合、画像の上下の要素との重なりが、ブロックエディターと記事表示時とで差異が生じるので、z-indexあたりを調整しないといけないっぽい。

プラグインをリメイク

JavaScriptでゴリコリ書いていたブロックエディター向けのプラグインを基本部分をJSXで書き換えてリメイクしました。機能面では現行の機能を踏襲しつつ一部機能を拡張した感じです。

マーカー

従来はテキストを選択してボタンでクリックすることで、蛍光ピンクで細目の下線を引いた感じだったのですが、最新版ではマーカーの色と線の太さを選択できるようにしました。

マーカーボタンをクリックすると、ポップオーバーのパネルが表示され、そこでマーカーの色と太さを選択。色は6色、太さは9段階とし、従来に比べてだいぶ自給度が増しました。

グレースケール効果

画像ブロック向けにグレースケール化するボタンについては、グレースケールだけでなくほかの効果を付与できるようにしました。

ボタンをクリックすると画像の右側にポップオーバーでパネルを表示し、「グレースケール」「セピア」「コントラスト」「明るさ」「ぼかし」の効果をそれぞれ適用します。

今できる範囲でちょっと機能強化できてよかったです。Popoverコンポーネントとちょっとなかよくなりましたね。

オートコンプリートで虎視眈眈!

若干不満はあるものの「editor.Autocomplete.completers」フィルターは楽しい拡張ポイントです。

今回追加したのは四字熟語。トリガーは「:ju」にしてみました。

ここで選択された熟語は 虎視眈眈こしたんたん のようにルビに加え、abbrタグで表示するようにしてみました(四字熟語は純粋な略語ではないけれど)。

オートコンプリートの不満は、オプション候補が10を超える場合に上下キーなどで11番目以降の候補を表示・選択する術がないことくらい。追加の文字で絞り込みは可能だけど、シンプルに上下キー(+Ctrlキーなどの組み合わせ)で候補の切り替えが可能になってほしい。

ログインページをちょっと変えた!

Googleアカウントでログインできるプラグインを作り、しばらく運用してきたが、特に問題がなかったのでログインページをちょっと変えることにした。

具体的には「ID」と「パスワード」の入力ボックス、「ログイン」ボタンなどのログインフォームをとっぱらうこと。従来の表示への切り替えは、wp-config.phpの定数で変更できるようにしたり、ログインフォームが非表示の場合は「ID」と「パスワード」によるユーザー認証を不可にしたりといった対応をしています。

Googleアカウントでログインする際はそのボタン1つで十分だったので、今回ログインフォームを見えなくしたことで、見た目はかなりスッキリしました。

readme.txtのStable tagがチェックされるようになった!

公式ディレクトリにプラグインをいくつか公開しているのですが、最近readme.txtの「Stable tag」に記述されたバージョンがリポジトリの「tags」内に存在しない場合、コントリビューターに対してエラーを表示するようになっていました。今回WordPress 6.6のリリースに合わせてプラグインのreadme.txtの「Tested up to」を更新した際に気がつきました。。。

公開中のプラグインの「tags」内はこれまで空っぽだったので、順番に用意して行くことに。現状、公式ディレクトリへプラグインをアップロードする場合、Windows環境で「TortoiseSVN」を使用しているのですが、さっぱり方法がわからないので、チョロっと検索してみた。

「tags」を登録する方法はシンプルだった。プルダウンメニューを開き、「TortoiseSVN」-「Branch/tag…」を選択。「To path」欄のプラグインのURLの後に「/tags/(安定版のバージョン番号)」を追加し、「Create copy in the repository from」は「HEAD revision in the repository」を選択して、「OK」ボタンをクリックする。これだけでよかったのか。。。

数分後、プラグイン紹介ページをリロードすると、エラー表示はなくなっていました。この調子で、他のプラグインも更新していきます。

WordPress 6.6リリース!

WordPress 6.6が予定通りリリースされました。メジャーバージョンのコントリビューターリストに名前が載っていたは嬉しいことです。

最近、ちょっとした手違いで作っていたカスタムブロックを壊しまい、作り直しをしたのですが、機能的には以前のものと同等以上であっても微妙なところが違っていておもしろい感じです。

カスタムブロックについては自分なりに作り方のスタイルが固まってきたのもいい傾向だと思っています。attributesの項目が多くなりがちで、それにともないサイドのUIが肥大化しつつあるのが悩みどころ。もう少しシュッとコンパクトにまとめたい。

新しければいいってもんじゃないらしい……

今週はWordPress 6.6 Beta1、6.5.4が公開されました。手持ちの2サイトは順次6.5.4へ、開発環境もとりあえずは6.5.4へアップデートしました。

そんなこんなで気分一新し、新しいブロックでも作ってみようかと思い、「create-block」で新しいプラグインを作成。

このコマンドは、wp-content/pluginsディレクトリで実行するのが正解なわけだが、先にプラグインのディレクトリを作ってその中で実行しちゃいがち(その度にやり直してる)。

とりあえずプラグインのディレクトリへ移ってビルド。

プラグインを有効化し投稿編集画面を開いてみたが、作ったブロックが表示されない。なんで!?

投稿編集画面のHTMLソースを見ると、cssファイルはロードされているけど、jsファイルが見当たらない。思いついたことは試してみたが原因がさっぱりわからず昨晩は寝てしまった。

夜があけてXを眺めていると、「浜野さん」のポストを発見!

wordpress/scriptsがv28.0からReactの新しいJSXトランスフォームを使用するようになったのですが、これはWordPress6.5以下では動作しないので、ブロック開発でscriptsを使用していてWordPress6.5以下もサポートする場合は、scriptsのv27.9以下を使う必要があります

https://x.com/tetsuaki_hamano/

ということで、プラグインディレクトリのpackage.jsonを確認。確かに、「^28.0.0」になっていた。

  "devDependencies": {
    "@wordpress/scripts": "^28.0.0"
  }

「^28.0.0」を「^27.9.0」に書き換えて保存。wordpress/scriptsを再インストールして、もう一度ビルド。

投稿編集画面を開き直すと、無事ブロックが表示されました。


本件はWordPress 6.6 Beta1が公開され、それに合わせてwordpress/scriptsもアップデート。このタイミングで新しいブロック(プラグイン)を作成したことにより、生じたのでしょう。これからは、wordpress/scriptsのバージョンに注意しないといけませんね。

「Align widgets horizontally」公開できた

2月末に申請したプラグイン「Align widgets horizontally」をようやく公開できました。サポートチームとのやりとりが始まるまで1か月、サポートチームとのやりとりが1か月と、ちょっと手間取ってしまいました。

時間がかかった理由はいくつかあり、その1つはwordpress.orgのアカウントでgmailを使用していたこと。こちらのメールアドレスを本サイトのものに変更しました。

プラグイン本体(PHPファイル)のヘッダー部「Author URI」と「License」の記述漏れ。これらの項目は、これまで公開していたプラグインでも省略していたのですが、いつの間にか必須になったみたいです。

プラグイン本体のPHPファイルについてはもう1点、エスケープ処理が不十分だったところ。若干過剰に検知されているのではと思えなくもない指摘もあったのですが、一通り修正しました。

サポートチームとのやりとりは週一回だったので、時間がかかってしまいましたが、なんとか公開できてよかったです。