WordPress

WordPress edit.phpは迷宮のようだ

WordPress を使って企業サイトを構築しようと考えたとき、WordPress の入力エディタを利用するのは少々苦しい。例えば企業の事例紹介を考えると、画像や内容もさることながら見栄えも綺麗に整える必要があるのだが、それを WordPress のエディタだけで入力しなければならないとすると、WordPress を知るデザイナーの方しかできないように思う。

そこで、入力用の定型フォームを用意し、フォームに従った入力をするだけで事例紹介が1件追加される、ような流れにすれば誰でも使えるようになるのではないだろうか。

で、管理画面の「投稿」ナビに新しく定型フォーム用のメニューを加えて、そこから特定カテゴリの投稿を定型フォームで入力・編集しようかと考えた。投稿データの一覧やデータ入力編集は、実際に edit.php が処理しているので、真似をしようかと覗いてみたら、これがもうタイトルのごとし。一筋縄では行かない事が分かりました … orz

それでも確認した内容だけメモしておこう。

edit.php における一覧表示とページ切り替え

一覧は、「edit-post-rows.php」をインクルードして、そこから「wp-admin/includes/template.php」の「post_rows()」で行なわれる。

「post_rows()」では、「$wp_query->posts」として読み込まれたデータを使い、繰り返し「_post_row()」で表示処理する。

データの読み込まれるタイミングは、edit.php の「wp-admin/includes/post.phpのwp_edit_posts_query()」の呼び出しで行なわれる。当該関数は、edit.php の一覧画面からの特別な読み出しパラメータをセットした後、グローバルwp()関数から WP クラス(wp-includes/classes.php)の wp->main() を呼び出して、$this->query_posts() でページ指定も含めてデータを読み込むようにしている。

うーん、あっちこっちたらい回しになってる。