PHP

[WordPress] ウィジェット構造をMarkdown形式で出力するプラグインを作ってみた とりあえずのメモ

[WordPress] ウィジェット構造をMarkdown形式で出力するプラグインを作ってみた

WordPressのウィジェットは便利ですが、いじっているうちに「前はどうなっていたっけ?」という状況になることがあります。そんな時に役立つ、ウィジェットの構造をわかりやすく記録できるプラグインを作りました。このプラグインを使うと、現在のウィジェット配置とその設定内容をMarkdown形式で出力できます。WordPressのウィジェット構造をメモしたいWordPressでウェブサイトを作っているとき、サイドバーやフッターにあるウィジェットの調整は頻繁に行います。しかし、調整し...
WordPressの古いリビジョンをまとめるカスタムプラグインを作った とりあえずのメモ

WordPressの古いリビジョンをまとめるカスタムプラグインを作った

WordPressの古いリビジョンを整理するカスタムプラグインを作成しました。このプラグインは一週間以上前のリビジョンから日ごとに最新の一つだけを残し、データベースの肥大化を防ぎます。管理画面からリアルタイムで進行状況を確認でき、毎日自動実行されるため効率的なサイト管理ができます。WordPressの記事保存の処理は、体感ではそこまで速くはなりませんでした。編集履歴を管理するプラグインを作ったWordPressで記事を保存する処理が遅くなってきた気がします。リビジョン(編集履...
アカウント登録の練習用ダミーページを作った(PHP) とりあえずのメモ

アカウント登録の練習用ダミーページを作った(PHP)

アカウント登録の練習用ダミーページをPHPで作成しました。このページでは、データを実際に送信せずにローカルで処理し、パスワード入力やフォーム検証の練習ができます。アカウント登録の練習用ダミーページを作ったブラウザで開いてパスワード入力を練習するためのページを作りました。練習用ページでは、実際のデータは送信されず、ローカルで処理されます。データの非保存:フォームのsubmitイベントをJavaScriptで制御し、実際にはデータを送信せず、ローカルで処理しています。フォーム検証...
CSVをShift-JISにするためのオンラインツールを作った(sjis-csv) とりあえずのメモ

CSVをShift-JISにするためのオンラインツールを作った(sjis-csv)

生成AIで作成したCSVファイルをExcel(オンライン版)で開いたら、文字化けしてしまいました。そこで、文字列をShift-JISにエンコードして sjis.csvとしてダウンロードし直すためだけのオンラインツールを作りました。ExcelはCSVの文字コードをShift-JISと過程する生成AI(Claude)が出力した csvファイルをそのまま オンライン版のExcelで開いたら、文字化けしてしまいました。これは、UTF-8のテキストファイルをShift-JISとして開い...
[WordPress]ランダムな記事へのボタンを追加した(functions.php) とりあえずのメモ

[WordPress]ランダムな記事へのボタンを追加した(functions.php)

過去の記事を「掘り起こして」読んでもらう仕掛けとして「ランダムな記事へのボタン」を追加しました。WordPressブログにランダムな記事へのボタンを追加するカスタムウィジェットを作成しました。きっかけは、ブログの「アーカイブ」としての機能を強化したいと思ったからです。カスタムウィジェットを作成するPHPコード前の記事、ランダムな記事、次の記事へのリンクを表示するカスタムウィジェットを作りました。WordPressテーマのfunctions.phpファイルの末尾に追加したら、ウ...
[WordPress] H2タグの文字の前に番号を追加するカスタムスクリプト(functions.php) とりあえずのメモ

[WordPress] H2タグの文字の前に番号を追加するカスタムスクリプト(functions.php)

H2タグの前に番号を付けるために、WordPressの functions.php にカスタムスクリプトを追加しました。H2タグを検出し文字列を置き換える処理を、フィルターとして 'the_content'に追加します。H3タグでも同様に階層的な番号付けができます。
[WordPress]画像キャプションをalt属性を自動設定するカスタムスクリプト(functions.php) とりあえずのメモ

[WordPress]画像キャプションをalt属性を自動設定するカスタムスクリプト(functions.php)

WordPressの画像ブロックにおいて、キャプションをalt属性に自動設定するカスタムスクリプトを作成しました。このスクリプトは、figcaptionタグ内のテキストを優先的にalt属性に設定します。functions.phpに追加することで、画像のアクセシビリティを向上させることができます。画像のキャプションをalt文字列に活用したいWordPressの画像ブロックには、キャプションを付けることができます。画像にAlt文字列が設定されていないときに、もしキャプションがあれ...
[WordPress]記事内の画像のalt属性を見出しから自動設定した(functions.php) とりあえずのメモ

[WordPress]記事内の画像のalt属性を見出しから自動設定した(functions.php)

WordPressのアイキャッチ画像にalt属性を自動設定する方法を紹介します。functions.phpにカスタム関数を追加することで、空のalt属性に記事タイトルを設定します。この機能により、SEOとアクセシビリティの向上が期待できます。
WordPressカスタムプラグインに日毎のPVを表示する機能を追加した プログラミング

WordPressカスタムプラグインに日毎のPVを表示する機能を追加した

WordPressプラグインに日毎のPVを表示する機能を追加しました。add_menuを追加自作のカスタムプラグインを使っています。今回は、そのプラグインに機能を追加します。※以前にプラグインを作成したのは、こちら。まず、新しいサブメニューページを chiilabo_stats_admin_menu関数内のadd_menu_page関数の引数に追加しました。add_submenu_page( 'chiilabo-stats', // 親メニューのスラッグ '日別PV', '日...
QRコード生成APIをGoogleからqrserver.comに変更した トラブルと対処

QRコード生成APIをGoogleからqrserver.comに変更した

ついに GoogleAPIsのQRコード生成APIが終了していたので、QR code generator(goqr.me)のAPIに変更しました。変更前: ' . $url変更後: ' . urlencode($url)前提: $url = get_the_permalink();URLをURLエンコードするのがポイントです。QRコードが表示されていない?このサイトの記事を印刷すると、その記事のQRコードが印刷されるように設定しています。ところが、久しぶりに印刷されたものを確...
詐欺サイトはスマホを狙う(ユーザーエージェント) とりあえずのメモ

詐欺サイトはスマホを狙う(ユーザーエージェント)

クレジットカードなどの利用照会を装うメールから偽サイトに誘導する詐欺が横行しています。ところが、パソコンからアクセスすると適当な大手サイトにリダイレクトされました。スマートフォンからアクセスしたときだけ偽のログインページを表示するように、「ユーザーエージェント」という情報を使っていました。詐欺メールがスマートフォンを狙うのは、コンピュータ関係に詳しくない利用者が多い、と考えられているからでしょう。スマートフォンは手軽に使い始めることができますが、情報セキュリティについて自分で...
[Cocoon]タグ一覧から1記事しかないタグを除外した(WordPress) とりあえずのメモ

[Cocoon]タグ一覧から1記事しかないタグを除外した(WordPress)

WordPressのCocoonテーマのタグ一覧で、1記事しかないタグを非表示にするように、functions.phpのショートコードを修正しました。記事数が2以上のタグを降順で表示するようにしたら、タグ一覧がスッキリして関連記事を探しやすくなりました。生成AIでコードの修正案を生成したので、数分でできました。環境WordPress, Cocoonテーマさらにタグ一覧をカスタマイズした以前、WordPressサイトで記事のタグ一覧を表示するショートコードを作りました。しかし、...
DokuWikiをアップグレードしてプラグインをメンテナンスした(2024 “Kaos”) トラブルと対処

DokuWikiをアップグレードしてプラグインをメンテナンスした(2024 “Kaos”)

PHP7.4から8.0にアップグレードしたため、DokuWikiが起動できなくなりました。DokuWikiを 2024 "Kaos" にアップグレードすると、今度は動作しないプラグインが出てきました。いったんプラグインを手動削除するとログインできるようになったので、それから最新版のプラグインを入れ直しました。振り返ると、サイトのPHPをアップグレードする前に、DokuWikiのプラグインの更新を確認しておけばよかったです。ちゃんと更新をしていないと、二度手間になってしまうんだ...
「サイトで重大なエラーが発生しました」(ゼロ除算の2つの結果) トラブルと対処

「サイトで重大なエラーが発生しました」(ゼロ除算の2つの結果)

PHPのバージョンを7.4から8.0に上げたら、カスタムプラグインがエラーになるようになりました。エラーをみると「ゼロ除算(DivisionByZeroError)」。これまでは除算後に NaN のチェックをしていたのですが、除算前に 0 のチェックが必要になったみたいです。どうも、除算演算子で fdiv でなく intdiv が使われるようになっていたのが原因ようです。カスタムプラグインのエラーPHPのバージョンを7.4から8.0に上げたら、以前に自分で作ったWordPre...
WordPressカスタムプラグインのタイムアウトを避ける(mixhost) プログラミング

WordPressカスタムプラグインのタイムアウトを避ける(mixhost)

カスタムプラグインでサイトの統計情報を分析しているのですが、時々タイムアウトで動かなくなってしまうんです。そこで、cPanelのMultiPHP INIエディタを使って、max_execution_timeの設定を変更してみました。これで、プラグインが途中で止まらずに済むようになりました。カスタムプラグインの動作が安定しないカスタムプラグインでサイト統計情報を分析しています。ところが、最近 そのプラグインの統計ページが動かないときがあります。ページの再読み込みすると動いたりも...
WordPressが動かなくなった(PHP 8.2) トラブルと対処

WordPressが動かなくなった(PHP 8.2)

原因は、PHPバージョンが古くて、WordPressのバージョンアップに対応できなったからのようです。PHPバージョンを8.0に上げたら、動くようになりました。ただ、8.2まで上げると、今度はプラグインの対応がうまくいかないのか、エラーになりました。折を見て、古いプラグインの利用を変更しないといけませんね。管理画面のエラーは、デバッグモードにして確認した。(参考)mixhostでWordPressのPHPエラーが表示されないときの対処方法mixhost(ミックスホスト)でPH...
[WordPress] アイキャッチ画像にリンクを挿入した(ショートコード) とりあえずのメモ

[WordPress] アイキャッチ画像にリンクを挿入した(ショートコード)

サイトのヒートマップなどを分析すると、けっこうアイキャッチ画像がタップされているようです。そこで、アイキャッチ画像にリンクを付けられるショートコードを作ってみました。eyecatch_link ショートコードを作った記事中に以下のようなショートコードを入力します。[eyecatch_link href=""]functions.phpにコードを追加するこのコードを解釈できるように、functions.phpにコードを追加します。/** * アイキャッチ画像にリンクを追加するシ...
とりあえずのメモ

[WordPress] 印刷時に管理者バー分の余白があるのが気になる(admin-bar)

管理者としてログインしているときに印刷モードでレンダリングを表示すると、上部に余白がついているのがきになりました。この余白は、html タグについているようです。どうも、管理者バーの分だけ画面全体を下にずらすのが目的のようです。WordPressのソースコードを検索すると、この余白が _admin_bar_bump_cb で設定されていることがわかりました。function _admin_bar_bump_cb() { $type_attr = current_theme_s...
とりあえずのメモ

[PHP] jetpack.cssを無効化する

Jetpackプラグインを有効にすると、CSSとJavaScriptが読み込まれます。/wp-content/plugins/jetpack/css/jetpack.css?ver=3.8.0これを無効にします。/** Jetpackを有効にした際に読み込まれるCSSを無効化*/add_filter( 'jetpack_implode_frontend_css', '__return_false' );こちらもどうぞ。
[Mac] PC内で検証用ウェブサーバを動かす【php -S】 Mac

[Mac] PC内で検証用ウェブサーバを動かす【php -S】

phina.js のプログラムをローカルで検証するために、ウェブサーバを立ち上げることにしました。ブラウザでHTMLファイルを開いてもサイトと違うただのファイルとして html を開いた場合(たとえば「file:///Users/user/html/index.html」など)、JavaScriptから相対アドレスでほかのローカルファイルを読み込んだりはできません。JavaScriptのセキュリティ上の制限で、ローカルファイルにはアクセスできないからです。そのため、サイトデー...