オシゴト詰まっててなかなか更新できねぇ…(´・ω・`)

pre_get_postsのアクションフックを使う際に配列でクエリを書き換える

なんらかの理由でメインループをいじりたいときに、pre_get_postsのアクションフックを使うが、WP_Queryの引数とかにあるような配列を使ってクエリを書き換える方法が探してもなかなか出てこなかった。

ソースコードと英語版コーデックスを読んで、それを行うparse_query()を見つけたので書き残しておく。

the_category()のaタグにCSSのクラスを付ける小ネタ

ワンオフサイトの制作で、the_category()で出力する記事に紐付いた記事一覧にカテゴリーのURLに付いているスラッグを起点としたCSSのクラスを付けたいことがある。

そんなときはまぁふつうにget_the_categoryで回せばいいんじゃないかと思うかもしれない。

 

でも、ワンオフサイトの出力関係をできるだけ規定のテンプレート関数に頼ったり、既存テーマのテンプレートをいじったりするときにはそれが欲しいなーとたまに思ったりする。

そんな際に手っ取り早くなんとかできんかと思って、適当に書いて組み込んだ。

WordPressのクエリにおける実体のパラメータをURIのリクエストや任意で取得する

仕事上の諸事情で、久しぶりにあーでもないこーでもないと唸った。

 

始まりは10月初頭の終わり。

いつもやり取りしている人から、(その時点では)とある要求(要望ではなく要求、大事なことなので復唱します。要望ではなく要求。)を受けてしまった。

それが表題のとおり、WordPressのクエリにおける実体のパラメータを取得するということ。

 

分かりやすいように言うと、

設定画面のパーマリンクで

「/%year%/%monthnum%/%day%/%postname%/」とか設定したものを、

テーマ側のメインループにおいては「?year=Y&monthnum=m&day=d&name=postname」という形に復号化して取得しろっていうこと。

 

これそのものが、機能の全部というわけではないが・・・まぁ、ある機能を実装するためにどうしても必要不可欠だった。

Got error 28 from storage engineでWordPressの管理画面にログインできないので対処した

私用で駆け回る前回の土曜。LINEに連絡が入っているのに気がついた。

「お客さんがWordPressにログインできない。」

本当にその一言だけ。

 

どうログインできないのかなどは書いてなかったため、そもそもログイン情報に関するログイン失敗なのか、ログインそのものはできているがそこから先に進めないのか。

全く、状況が読み取れない。

 

俺が事前に知っていた情報としては、そのWordPressは共用サーバー上で動いており、普通に運用する上ではログインできなくなるといった状況はあまり考えられないということ。

今回は実際の作業にあたり、デバッグモードをONにした際にGot error 28 from storage engineでWordPressにログインができないのを対処した話を書こうと思う。

PHPのセッションをMySQLで管理する際につまづいたところのTIPS

通常、サーバー内にファイルとして管理されるセッションデータを、データベース側で管理したくてMySQLでテーブルを作って管理することにした。

それでPHP5.4以降から使えるSessionHandlerInterfaceを継承して行うことにしたのだが、今までファイルやフレームワークでセッションを管理していた癖のせいでPHPのドキュメンテーションを見ながらコマネチすることになったのだが・・・。

 

Fatal error: session_start(): Failed to initialize storage module: user (path: ) とかいうエラーから始まり、四苦八苦してMySQLの対象テーブルに辿り着こうものなら、SessionHandlerInterfaceのwriteが動かない、セッションのデータを更新できない

 

今回はこれらを解決・・・というか、これらのエラーに関してはほとんど凡ミスに集約されるので、同じことでつまづかないように書いておこうと思う。