WordPress

Cocoonの目次が記事の途中に出る問題を、子テーマで本文冒頭に動かした話

Cocoonの目次はデフォルトでH2タグの直前に表示されるため、導入文が長い記事だと本文の途中に出て読みにくい問題があります。子テーマのfunctions.phpで親テーマ関数を上書きして、記事の冒頭に目次を移動した記録。
Web Development

日本語フォームの半角カナ・全角英数をinputとblurで使い分けて自動変換する話

日本語フォームの半角カナ・全角英数を JavaScript で自動変換する実装メモ。input イベントは IME 経由では動かずコピペ対策専用、IME 入力は blur で最終チェックする役割分担を、ATOK + Chrome の実測ログでまとめました。
Web Development

姓名フォームのフリガナ自動入力をcompositionイベントで自前実装した話

姓名フォームのフリガナ自動入力をcompositionイベントで自前実装した検証メモ。ATOK 35 + Chrome 148の実測ログを交え、変換途中のフォーカス移動、推測変換、Cmd+Tabで発火順序が逆転する挙動などをまとめました。
Web Development

Contact Form 7でzipaddr-jpが動かなかった話|郵便番号→住所自動入力で踏んだid命名規則の罠

Contact Form 7 + zipaddr-jp で郵便番号→住所自動入力を実装したとき、id 命名規則の area / addr の使い分けを見落として動かなかった実体験。原因究明の流れと、area が分かれている設計理由を実装メモで残します。
Web Development

日本語入力のEnterでフォームが誤送信される問題を直した話|Safari・React・Vue対応

日本語入力中のEnterでフォームやチャットが誤送信される問題を検証。isComposingだけで防げなかったSafariの挙動と、compositionendの時刻を使った二段ガード対策を、React・Vue・モバイル対応まで実例付きでまとめました。
WordPress

WordPress でコード記事を更新したら 501 Not Implemented|Xserver の WAF 誤検知を切り分けて、MarsEdit で逃がした記録

WordPressの管理画面やテーマ編集で 501 Not Implemented が返るとき、XserverのWAFが特定のコードをブロックしていることがあります。原因の切り分けと、除外設定での直し方を実際の画面で残しました。
WordPress

1記事だけ「検出 – インデックス未登録」が1ヶ月以上続いた話|URL変更と301リダイレクトで動いた

Search Consoleで1記事だけ「検出 - インデックス未登録」が1ヶ月以上続いた状態を、技術的確認・リライト・内部リンク見直しを経て、最終的にURL変更+301リダイレクトで動かした実体験。具体的な確認手順とチェックリストを公開します。
WordPress

PageSpeed が 53 点だった原因は Google Site Kit の gsi/client だった|フロントだけ除去して 72 点にした記録

PageSpeed Insights モバイル 53 点の原因が、Google Site Kit がフロントにも読み込む gsi/client(89.8 KiB)でした。ログインの Google ボタンは残し、子テーマの functions.php でフロントだけ除去。Cocoon やキャッシュの見直しも含めた一連の改善で 72 点にした実測記録です。
Web Development

日本語サジェストの実装版|キーボード操作・blur 競合・WAI-ARIA・API 連携まで直して、ようやく使える検索 UI にした話

前編の検索ロジックを、使える検索 UI に仕上げた実装版です。↑↓ Enter Esc のキーボード操作、候補クリックで消える blur 競合、WAI-ARIA、AbortController による古いレスポンス対策、レート制限まで、自サイトに組み込んで直した記録です。
Web Development

「あ」で「雨」「赤」を出す日本語サジェストを、HTML と JavaScript だけで作る|IME に頼らない読み検索(基本編)

「あ」で「雨」「赤」を出す日本語サジェストを HTML と JavaScript だけで作ります。IME の変換候補は JS から取れないので、読みと漢字の辞書を自前で持ち前方一致で検索。IME 合成中の判定、debounce、HTML エスケープまで実装の土台を整理しました。
タイトルとURLをコピーしました