2024年3月の学習内容
- 2024.05.06
- その他
- 228 View
3月中の業務で学習した内容です。
- jQueryでPDF出力を行う際に、機種依存文字がうまく表示されない件
- カスタムテーブルについて
①PDF出力したスタッフ名の内、機種依存文字が含まれる方
例 : 「髙」が「・」として表示されていました。
GenshinGoshicというフォントでは対応しておらず、ipagという別のフォントに変更し試したところ、正常に表示される事を確認しました。
フォントによっても機種依存文字で表示されるされないがあり、調べる必要がある事が分かりました。
②弊社ではjQuery -> ajaxを用いてテーブルを表示させる処理を行っていましたが、表示までが遅くプラグインを用いた出力でも満足のいく速度での表示が困難でした。
原因としては、WordPress独自のテーブル「post,postmeta」の仕組み自体だと考えました。
※ACFの項目数 × データ行数 を全てpostmetaというテーブルに集約していました。そりゃ遅くなるよねという話です…。このテーブル構造に気づくまでに時間がかかりました。
その経緯があり、現在は
①postmetaからテーブル表示に必要な項目のみ抜粋し、独自テーブルを作成する。
②独自テーブルからjQueryへデータを渡す。
という流れにしております。テーブル作成時にはどうしても時間がかかりますが一度作成してしまえば、それ以降は気にならない速度にはなりましたね。
また、一覧表示に編集、削除項目。新規登録は固定ページから行うようにしており、独自テーブルへの反映も独自で処理する方向にしています。
$wpdbにもう機能があったため実装は楽でしたが、発火させるイベントが少し難しかったのでここを共有します。
当初、save_postというイベントで実行させる予定でしたが、こちらはACF項目の変更では発火せず、acf/save_postというものを使用しました。
ただ、こちらだと更新か新規かの判断としての引数が無かったため、wp_insert_postやwp_update_postの処理内で$wpdbでの新規・更新処理を組み込む形を取りました。
※イベントでの実行をやめ、wordpress独自関数に処理を組み込んだという事ですね。
イベントでの発火をするという頭でずっと考えていたので、この提案をしてくださった同僚に感謝です。
柔軟な思考って大事だなと改めて思いました。
「東三河・西三河で働く!」高時給な派遣求人が満載!
-
前の記事
【PHP】in_arrayを使用時、必ずやっておくべき事とは? 2024.04.27
-
次の記事
【デザインツール】Figmaとは?4つのメリットをご紹介! 2024.05.31