souyukiyaさん、こんにちは。
カスタムフィールドではありませんが、順序の項目を表示、並び替えの方法については、下記にて紹介しています。
WordPressの固定ページ一覧に順序の項目を追加する方法
カスタムフィールドでソートする場合、query_postsのパラメータと同様、orderbyのパラメータとしてmeta_valueを指定すれば良さそうですが、説明にもあるとおり、meta_keyとの組み合わせが必須となります。
では、urlにmeta_keyパラメータを追加すれば実現できるかというと、meta_keyは WordPressが解釈可能なurlのパラメータ(wp-includes/class-wp.php 18行目の $public_query_vars)には含まれていないため無視されてしまいます。
ですので、下記のように query_vars にフックし
function add_meta_query_vars( $public_query_vars ) {
$public_query_vars[] = 'meta_key';
return $public_query_vars;
}
if ( is_admin() ) {
add_filter( 'query_vars', 'add_meta_query_vars' );
}
を別途追加して、meta_keyパラメータをWordPressが解釈可能にしてあげる必要があります。
[追記]
カスタムフィールドが数量なので、meta_valueではなく、meta_value_numの方が適切かもしれませんね。
jim912 様
ご返信ありがとうございます。
教えていただいたURLのページと、ソースコードをもとに色々試してみた結果うまく行きました!
本当にありがとうございました。
こういったWPのアクションやフィルターのフックは、やはり公式英語のドキュメントから読み解くほか習得の術はないものでしょうか。テンプレートタグ程度なら容易にリファレンス的な資料を探し出すことが出来ましたが、プラグイン作成や管理画面のHack的な事となると、すぐ壁にぶち当たってしまいます(どんなフックでどんな事が出来るのかわかりつらい)
便乗的で恐縮ですが、またお時間あるときにご相談に乗っていただければ幸いです。
souyukiyaさん
自分の場合、あまり参考にならないと思いますが、全てソースを追って処理を理解し、apply_filters、do_actionが記述されているところを、探すようにしています。
初めは、ちんぷんかんぷんですが、多くを理解するうちに、ピースが組み合わさってWordPress全体の処理過程や構造、記述箇所なども見えてくるようになるので、より深い理解が得られるようになってきます。
地味ではありますが、「ソースこそ最高のドキュメント」という言葉の通り、プログラムを理解することが、より深いカスタマイズなどを実現するための第一歩だと思っています。(私も全部理解しているわけではありませんけどねw)
jim912 様
ご返信ありがとうございます。
WP本体のソースコードはとても多く、圧倒されてしまっていましたが少しずつ頑張ってみようと思います。
アドバイスありがとうございました!
また何かありましたらよろしくお願いします。