プログラミング

WordPressが動かなくなった(PHP 8.2) トラブルと対処

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

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

[Cocoon] 「SNSシェア」ボタンをショートコードで表示できるようにした

記事内で、以下のショートコードを入力することで、好きな位置にSNSシェアボタンを出せるようにしたいと思います。[sns_share_buttons]できたコード(functions.php)はこちら。/** CocoonのSNSシェアボタンを表示するショートコード 2024-02-18 */add_shortcode( 'sns_share_buttons', 'wrap_get_template_sns_share' );if ( ! function_exists( 's...
九九表に含まれないものの素数ではない奇数(pythonの集合演算) ちいラボエッセイ

九九表に含まれないものの素数ではない奇数(pythonの集合演算)

81までの九九表外の素数ではない奇数は全部で 9個あって、51と57に気をつければ、あとは素数ではないとすぐ見分けがつく数ばかりだということがわかりました。ちなみに、81までの素数は、{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79}の22個で、はじめの4つ以外の18個はすべて九九表外です。問題1から順番に素数を挙げていたら、間違えて「57」を言ってしまいまし...
[macOS] ファイル名を一括変更するターミナルコマンド(sedでループ) Mac

[macOS] ファイル名を一括変更するターミナルコマンド(sedでループ)

作業フォルダ内のファイル名にある「@」を「#」まとめて変更する必要がありました。一個ずつファイル名を変更するのは大変なので、シェルスクリプトを作りました。正規表現で作業フォルダ内のファイル名を一括変更する#!/bin/bashcd {作業するフォルダパスを入れます}IFS=$'\n'for f in *; do newname=$(echo "$f" | sed 's/@/#/g') if [[ "$f" != "$newname" ]]; then mv "$f" "$ne...
ExcelのクリップボードエラーとCutCopyMode(2つのクリップボード領域) Windows

ExcelのクリップボードエラーとCutCopyMode(2つのクリップボード領域)

Excelマクロを実行したら、「クリップボードに問題がありますが、このブックにコンテンツを貼り付けることができます」というエラーメッセージが出てきました。VBAコードの不要なコピー処理を削除することで解決しました。クリップボードエラーが出てきたExcelでマクロ作業を使っていたら、「クリップボードに問題がありますが、このブックにコンテンツを貼り付けることができます」というエラーメッセージが表示されました。これは、クリップボードの機能に問題が生じていることを示しています。クリッ...
[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...
WordPressの jQuery を jsDelivr に変えてみたけれど(CDNとパフォーマンス) とりあえずのメモ

WordPressの jQuery を jsDelivr に変えてみたけれど(CDNとパフォーマンス)

WordPressのjQueryの読込みを高速化するために、CDNの jsDeliver に変更してみました。しかし、結果としては ほとんど違いは出てきませんでした。WordPressデフォルトのGoogle Cloud CDN 自体がすでに高速なCDNだったようです。jQueryがメインスレッドをブロックしているChromeの開発モードでパフォーマンスを見ていたら、「第三者コードの影響を抑えてください」という診断が目につきました。jqueryライブラリの読み込みに時間がかか...
【検討中】 jquery-migrateを減らしてみたけど、戻した [WordPress] とりあえずのメモ

【検討中】 jquery-migrateを減らしてみたけど、戻した [WordPress]

PageSpeed Insightsで「レンダリングを妨げるリソースの除外」を見てみると、jqueryに関する2つのスクリプトが目につきました。(Google CDN)jquery.min.js?ver=3.6.1(Cloudflare CDN)jquery-migrate.min.js?ver=3.0.1これを除外できないか試みてみました。jQueryスクリプトを入れ替えjQueryのスクリプトを入れ替えてみます。(参考)jQuery CDNfunction refresh...
とりあえずのメモ

スクリプトとスタイルの遅延読込みのしかた[PSI](WordPress)

CSSは、とりあえずCocoonの「CSS縮小化」で除外できました。jqueryは、wp_enqueue_script でフッター読込みに変更しました。レンダリングを妨げるリソース久々に PageSpeed Insights(PSI)のスコアを見て、サイト設定をメンテナンスしています。「レンダリングを妨げるスクリプト」がちょっと残っているのが気になりました。画像と同じようにスクリプト も 遅延読み込みすることができます。script deferJavaScriptはscrip...
[WordPress] 遅延読込みのせいで印刷時に画像が消えていた(loading=”lazy”, decoding=”async”) とりあえずのメモ

[WordPress] 遅延読込みのせいで印刷時に画像が消えていた(loading=”lazy”, decoding=”async”)

ブログを冊子印刷にして配布しているのですが、一部の画像が印刷されていないことがあります。画像の遅延読込み で失敗しているようです。WordPress によって自動的に付加される「loading=”lazy”」「decoding=”async”」を消すよう、functions.php を編集しました。add_filter( 'wp_lazy_loading_enabled', '__return_false' );add_filter('wp_img_tag_add_decod...
[JavaScript] showOpenFilePickerがエラーになる(Uncaught (in promise) DOMException) とりあえずのメモ

[JavaScript] showOpenFilePickerがエラーになる(Uncaught (in promise) DOMException)

ファイル読み取りのため、以下のコードをそのまま実行したら動きませんでした。 const pickerOpts = { types: [{ description: 'Texts(.txt)', accept: {'text/*': ['.txt']} }], multiple: false, } let fileHandle; [fileHandle] = await window.showOpenFilePicker(pickerOpts); const file = aw...
[phina.js] JavaScript でユーザー端末のファイル入出力をするには とりあえずのメモ

[phina.js] JavaScript でユーザー端末のファイル入出力をするには

JavaScriptでは、ウェブ上のデータと違ってユーザー端末内のファイルには、直接アクセスできない仕組みになっています。これは、自分で作ったプログラムを検証する場合でもそうです。そのため、ローカル環境のファイルにアクセスするには、自前のウェブサーバでアクセス可能にするか、ブラウザから読み込み・保存する必要があります。今回は、ブラウザからのファイル入出力を見てみます。Blobオブジェクトのダウンロード文字列をテキストファイルとして保存するなら、仮想的なリンクを作って、リンクの...
[Mac] PC内で検証用ウェブサーバを動かす【php -S】 Mac

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

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

[phina.js] ゲーム内で表示できるオブジェクトの基本

前回は phina.js の土台となるシーン構成を概観しました。今回は シーンの要素となる基本的なオブジェクトをざっと見ていきます。参考資料は、「phina.js Tips集 上巻」です。ゲーム内で表示するオブジェクト前回の各サンプルで使われていたオブジェクトは・Label テキストを配置・Sprite 画像を配置・Button テキストと枠を配置でした。シンプルな項目なら、そのまま生成して配置します。 var label = Label('Hello, phina.js!'...
[phina.js] シーン管理の基本 とりあえずのメモ

[phina.js] シーン管理の基本

phina.jsのシーン遷移については、「<シーン編>|phina.js Tips集 下巻」が詳しいです。特徴的な部分をまとめます。phina.jsでは暗黙のうちにデフォルトのシーンが用意されているので、ちょっと戸惑いました。phina.jsの Hello Worldコード久しぶりに phina.js で遊んでみることにしました。JavaScriptだけでブラウザ上でゲームが動くのはやっぱり手軽です。しかし、プログラムの処理の流れをすっかり忘れています。まずは、シーンの概要と...
[WordPress] 文章校正プラグイン Japanese Proofreading Preview を使いたい とりあえずのメモ

[WordPress] 文章校正プラグイン Japanese Proofreading Preview を使いたい

文章校正プラグイン「Japanese Proofreading Preview」を試してみました。(参考)Japanese Proofreading Preview – WordPress plugin | WordPress.orgこのプラグインは、Yahoo!の「校正支援API」をWordPressエディタから呼び出せるようにするものです。設定のため、Yahooの登録でAPIを利用できるようにしました。アプリケーションの管理:Yahoo!デベロッパーネットワークしかし、設...
[PHP] タグ一覧に件数を追加する(Cocoon) とりあえずのメモ

[PHP] タグ一覧に件数を追加する(Cocoon)

ショートコードで表示している、ブログの記事のタグ一覧に、「件数」を追加しました。「タグリンク」をタップしても表示される記事が少ないと、別のタグを探し直さないといけないからです。前回はこちら。「クリック率向上のために!WordPressで「タグ一覧」に「記事数」を追加する方法」のコードを元に、ショートコード用関数にするために echo の部分を return にして、文字列を返すようにします。// the_tags_with_count() の末尾echo $before . ...
[WordPress] 自作プラグインに投稿文字数を計測するスクリプトを追加した【dbDelta】 とりあえずのメモ

[WordPress] 自作プラグインに投稿文字数を計測するスクリプトを追加した【dbDelta】

自作 WordPressプラグインに、一日の投稿文字数をカウントする機能を追加しました。大まかな処理の流れはプラグインの有効化時に投稿文字数カウント用のデータベースを作成するプラグイン表示時に、累計の投稿文字数を追加する(ただし、同じ日付のデータがあれば更新する)管理メニューでデータベース集計を表形式で表示する一日の成果を文字数で把握できると、ちょっとモチベーションアップになるかも?前回はこちら。データベースの作成(dbDelta)一番手間取ったのは、データベースを作成する処...
「Punycode」とは?(国際化ドメイン) わかりやすさ重視

「Punycode」とは?(国際化ドメイン)

Unicodeドメイン名を ASCIIに変換する「Punycode変換」では、先頭に「xn--」という特徴的な文字列が付加され、一見して元の文字列との対応がわかりにくいです。しかし、これは コンピュータが ASCII文字列に Unicode文字を一つずつくっつけて、元の文字列を復元するための「レシピ」になっています。