メシのタネ

Webプログラミング 備忘録

  • AWS移行でコケ中

    現在このWebサイトが稼働している、このサーバーのMySQLをマスターとし、AWS上のRDSをスレーブとして、データ移行をしようと思ったが、バイナリロギングの取得が上手くいかない。多分の手順VPSのDBでスレーブ用のユーザ作成バイナリロギングを行うスレーブ側RDSにマスターのDUM[...]

    続きを読む
  • AWS ソリューションアーキテクト アソシエイトに合格しました。

    実は、今日までIT無資格でした。ええ歳だし、そろそろなんか資格取っておくかーと考えだしたので、取って嬉しい資格を取ろうと思ってたところ、AWSの資格あったなーと思って、調べてみたら、みんな14日で受かる!とか言ってるので、じゃあというこで、試験日14日後とかにして、試験の予約入れたのが地獄の始まり[...]

    続きを読む
  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む

絞込み機能を改造してWordPressを管理しやすくしてみた

wpppppppp

WordPressでWebサイトを運営してみると、案外絞込みが使い辛い事に気がつきました。絞込みっていってもデフォルトではこれ日付でしか絞込みできないんですよね。固定ページで親子関係持たせてたらやっぱ親子関係持った記事絞りこんだ方が、更新が効率的にできると思うんですよね。まぁ正直ろくな方法ではないものの、無理くり引っ付けたので、同じようなことで困ってる人は試してみてはいかがでしょうか。

まずは親ページのIDを取得する

まず親ページのIDをどんな手段使っても良いから記憶します。親ページのIDは固定ページ一覧出した時のリンクの「?post=n」って書いてあるとこのnがIDです。
page_hayai-1

例えば、概要が親ページだとしたらこんな感じで調べる事ができますよね。もちろん他の方法もありますが、手っ取り早いのがこの方法です。

固定ページ一覧に細工する

固定ページの一覧を管理画面から開くとURLが

<br />
http://hogehoge.com/wp-admin/edit.php?post_type=page<br />
http://hogehoge.com/wp-admin/edit.php?post_type=page&amp;parent_check=n //nに親のIDを入れる<br />

こうすることで、親ページの一覧がでますねー。

parentlist-1

きゃーすてきー。

でもめんどいわー

ここで終わりでも良いんですけど、これだとアレ過ぎるので、もう少し便利にしてみましょう。
例えば、edit.phpの中にSelectつけて親ページで子ページ検索できる!みたいになったら嬉しいですよね。

ただ、それをやるには問題が立ちはだかりますね。

1、全親IDを取得しなければいけない
2、HTMLを一覧ページに書かなくてはいけない
3、クエリに親IDをぶちこまなければいけない

まぁおおまかに3つくらいの壁が立ちはだかるわけですけれども、これらを解消していきましょう。

親IDの取得

さっきやった方法で事足りる場合は良いのですけど、例えばページ数が多い場合に、一個一個親かどうか確認してID拾っていくのは非常に面倒くさいです。僕はやりたくないです。なのでさっき説明をはしょった、別の方法を使い、親ページのIDを取得していくことにします。

こんな感じでいかがでしょう。

HTMLを固定ページ一覧に追加する方法

これにはフックを使って、追加していきます。restrict_manage_postsってフックなんですけど、これはrestrict_manage_postsはフィルターのsubmitボタンの前に挿入されるらしいですが、edit.phpで一覧出してる時に絞込み検索ボタンの前に出る奴って覚える方が良さそうです。覚え方なんて人それぞれなので、あくまでお勧めするにとどめておきます。

そして、ここでなんと、selectタグにさっき記憶したIDを書き込んで行きます!

なんでやねん!!!ってなると思いますが、こうしないと、親ページ検索した後に、WP_Queryが上手く動作しなくなるので、僕は無理くりoptionのvalueに親IDをぶち込みました。WP_Queryを復活させる呪文知ってる人が居たら教えて下さい。

ほんでとりあえずはこうなります。

クエリに親IDをぶちこむ

今度はposts_whereっていうフィルタフックを使います。これでどうやらwhereの拡張ができるみたいです。とにかく親IDをぶちこんでやりましょう。

こんな感じでぶちこんでやればいいですね。これで無事機能追加されてると良いですよねー。

おまけ

投稿した後に、前の親ページ一覧に戻りたい場合は、edit_form_topってフック使えば、投稿ページにHTMLなりPHPなり仕込むことができます。自分なりの戻るボタンをぶちこんでやりましょう。

関連記事

コメントをお待ちしております