かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

PHP

WordPress 管理画面の favicon と ツールバーのアイコンをロゴにしたい

⛳️ Goals WordPress で作ったサイトの管理画面にログインしてる時、とのサイトだっけ?ってならないように管理画面の favicon と ツールバーの home アイコンをロゴに変更したい (納品するサイトの場合、こういうちょっとした部分で評価高くなりますし) Vers…

WordPress 管理画面の固定バーの右端にログアウトボタンを設置したい

WordPress 6.6.2 ⛳️ Goals 管理者以外が投稿や管理をする運用なので、直ぐにログアウトできるように管理画面の固定バーの右端にログアウトボタンを設置したい $wp_admin_bar->add_menu でメニューを追加・parent を使い追加する場所を指定する top-secondary…

WordPress カテゴリー・タクソノミー 一覧ページで現在のカテゴリー・タクソノミー名を取得したい

category.php, taxonomy-{tax_slug}.php の所謂、カテゴリー・タクソノミの一覧ページで選択されているカテゴリー名・タクソノミー名を取得したい WordPress v6.6.1 🙅 get_the_terms を使うをバグが発生しうる name ?? ''; } 上記のような get_the_terms を…

WordPress ページのURLを取得したい

WordPress のカスタムテーマで web サイトを作ってたらちょいちょい発生するやつ。 最終的に get_permalink($postID) で URL を取得するのだが、特定のページの post id を取得する方法を忘れるのでメモ 1. ページのタイトルから取得する get_page_by_title …

PHP 配列からいい感じに CSS のクラス名を作りたい

3億年ぶりに古の WordPress 製のサイトを更新する必要があり、PHP のテンプレートで CSS のクラス名を動的に作成する必要があった JavaScript で言うところの classnames のような挙動をさせたい CSS のクラス class="foo bar mofu" のような形 スペース区切…

WordPress REST API を無効化する

WordPress v6.1.1 rest_authentication_errors フィルターを使う apply_filters( 'rest_authentication_errors', WP_Error|null|true $errors ) This is used to pass a WP_Error from an authentication method back to the API. Authentication methods sh…

PHP 文字列中に変数で値を埋め込むやつのメモ

"Hello, xxxx!": "こんにちは、xxxxさん!" みたいな key-value で翻訳テキストを出せる機能を作っていて PHP で既定の文字列に変数を埋め込む方法を何パターンかやってみたのでメモ sprintf ・ vsprintf 所謂文字列のフォーマットに使うメソッドを利用する…

PHP 文字列中変数展開に関数は使えない?

PHP の文字列中変数展開が奇妙だったのでメモ 環境 PHP v8.2 変数展開 " (ダブルコーテーション)中に {$変数} で変数展開が出来る "Hello, Ichigo!" 定数は展開できない "Hello, {ICHIGO}!" 定数はそのまま出力される 関数も展開できない

PHP JSON デコードのエラーハンドリングのメモ

PHP v7.3 以降なら json_decode の第4引数に JSON_THROW_ON_ERROR を渡すことでデコード失敗時に JsonException がスローされるようになる

PHP array_reduce を途中で break したい

要件 JSON ファイルのキーを. 繋がりにした文字列が渡される キーを辿って最後の値を返す キーを辿って値にたどり着けなかった場合は最後のキーを返す 方針 渡された文字列を explode で分割して配列にする 分割した配列を reduce して JSON のキーを辿って…

PHP class の例外処理がキャッチできないにハマる

PHP

namespace を使っているクラス内では `\` で始まらないクラスは同じ namespace のクラスだと解釈される。グローバルなクラスは `\` 始まりで呼び出す必要がある

PHP class プロパティ定義で Constant expression contains invalid operations

Class プロパティは宣言時に初期値を設定することもできますが、 初期値は 定数 値でなければなりません。 トノコト

PHP Boolean の型指定にハマる

PHP

`true` / `false` の型は `boolean` ではなく `bool`

WordPress 多言語化対応 Bogo で locale の投稿だけ取得したい

get_posts を使う場合は `'suppress_filters' => false` パラメーターを使うと現在の locale の投稿のみが取得できる

WordPress ネストしてるテンプレートに変数を渡したい

WordPress のテーマでテンプレートを分割して分割したテンプレートに呼び出し元から変数を渡したい場合は公式の get_template_part を使うのがパスの問題も無く意図しない変数の上書きもないので良さそうです!

PHP もアロー関数書けたのですね!

PHP

PHP 7.4 からアロー関数 (Arrow Function) が使えるようになっていたので触って見たメモ Arrow Function 書式 fn(argument) => expr JavaScript のアロー関数との違い fn キーワードが必要 処理部分は { } で囲ったブロックが使えない 文末の ; は必須 $x +…

PHP 配列のキーとインデックスについてのメモ

PHP

PHP の ksort や array_filter を使っていて整数キーを与えた配列をループさせた際のインデックスで少し戸惑ったのでメモ 環境 PHP v8.2.0 tehplayground.com 環境でテスト PHP の配列のキーとインデックスは同じ整数でも別物 配列 key は、整数 または 文字…

PHP 配列の要素を任意の順番に並び替えたい

PHP

PHP で順番がランダムで渡される配列から特定の要素を特定の順番に移動させた配列を作成したい 環境 PHP 8.2.0 要件 順番がランダムになる ['Mizuki', 'Mikuru', 'Aoi', 'Ichigo', 'Otome', 'Yurika', 'Ran', 'Kaede'] という配列があり、先頭を固定して ['I…

PHP array_map でコールバック外にある変数を使いたい

PHP

JavaScript だと map などのコールバック関数の外にある変数にアクセスするのは言語仕様上問題がないが、PHP ではスコープ外となってしまった JavaScript const val = '☆'; const array = ['ハナ', 'シオリ', 'ルリ', 'ビート']; const result = array.map((…

PHP array_map でインデックスを使いたい

PHP

PHP の配列操作で array_map を使う時に index を使う方法 array_map のコールバック変数に index の配列を渡す array_map(?callable $callback, array $array, array ...$arrays): array array_map() returns an array containing the results of applying …

PHP 型チェックを厳密にしたい

PHP

前回 PHP の型宣言が暗黙の型変換をしてしまってそんなものかーと思っていたのですが、厳密にするオプションが有ることを教えてもらったので記録に残しておきます。 環境 PHP v.8.1.2 (onlinephp.io で実行) declare(strict_types=1); 宣言を行うと厳密な方…

PHP オプショナルな引数の初期値を設定したい

PHP

オプショナルな引数の初期値を設定した関数の作成は、関数の仮引数に 型宣言 + デフォルト引数に `null` を設定して、null 合体演算子を使ってデフォルト値を与えるのが良さそう

WordPress OGP 情報を自前で出力してみる

WordPress で OGP の情報を出力するには All in One SEO などのプラグインを使えば実現できるのですが、WordPress からしばらく離れていたこともあり WordPress 独特のプラグインが GitHub にない場合も多くスター数やどれが現段階でのベストプラクティスな…

WordPress アップロードした画像を width, height 属性無しで取得したい

wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), $size ); で画像の URL を取得するのが良さそう

WordPress ContactForm7 select の先頭の空白 option のテキストを変更したい

Contact Form 7 の DOM をカスタマイズする時は wpcf7_form_elements フィルターを使えばOK

さくらのレンタルサーバーに直接 Laravel をインストールする

こちらの Laravel の環境をつくる勉強会に参加してしました。localで作った環境を さくらのレンタルサーバー にアップするというものだったので、ssh でサーバーに入って直接環境を作れないか試して見たメモ ssh でさくらのレンタルサーバーに接続する方法は…

Docker nginx + PHP7 + MySQL8 で Laravel 触れる環境つくってみた

構成 /-- docker-compose.yaml |- /docker | |- /php | |- /nginx | |- /mysql | |- /data # MySQLのデータの永続化 |- /laravel # Laravel アプリがインストールされるディレクトリ 使い方 https://github.com/KiKiKi-KiKi/docker-laravel からコードをDLし…

React axios でファイルアップロードしたい

フロントを React バックエンドを PHP で作成していて、ファイルのアップロードを試してみたのでメモ File を扱うコンポーネント React では、<input type="file" /> は値がユーザだけが設定できるものでありプログラムでは操作できないため、常に非制御コンポーネントです。 cf. …

PHP 7 変数に値がなければデフォルト値を設定したい。

PHP

PHP で変数のデフォルト値を設定したい時 false の場合デフォルト値を使う 'default' $var = false ?: 'default'; // => 'default' $var = 0 ?: 'default'; // => 'default' $var = '' ?: 'de…

Docker Nginx + PHP + MySQL + Redis な環境作った。

Docker 一年生なので、雰囲気で作っています。 構成 /-- docker-compose.yml |- /web | |- /html … web root |- /mysql | |- Dockerfile | |- my.conf | |- /init | |- 1_dd.sql … DB 初期化 |- /nginx | |- nginx.conf | |- /log | |- access.log | |- erro…