Nora
(@nora0123456789)
通りすがりです。
「get_posts」などで取得する投稿データをカスタムフィールドの値によって並び替えたいということでであれば、「meta_key」や「meta_query」を使用してソートした状態で取得できないでしょうか?
$posts = get_posts(
array(
‘meta_key’ => $targeted_meta_key_name,
…others
)
);
FYR: http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query#Custom_Field_Parameters
違う話でしたら申し訳ないです。
そうなんです。
ソートキーとして、カスタムフィールドの値がほしいのですが、そのキーが文字なので
思った通りに並ばないのでならないので数字取り出そうと考えていました。
で、取り出せたのはいいのですが、それをどう当てるかで困ってしまいました。
元々のデータにsh22のような文字プラス数字のデータがあったので、
これを利用しようという頭しかなく、で、文字部分を削除して、、、。
が、考え方を変えてその部分は初めから数字だけにして、
あとで文字部分を付け足して表示することにしました。
とりあえず、これでいまのところうまくいっているようなのでひとまず様子見です。
アドバイスありがとうございます。
関数リファレンス/add post meta
見えない カスタムフィールドを作る
略
以下の例は、キーが _color で値が red のユニークなカスタムフィールドを追加しますが、投稿や固定ページの編集画面には表示されません。
<?php add_post_meta(68, '_color', 'red', true); ?>
で見えないソート用のメタつくって、
関数リファレンス/WP Query
値段順にソートした商品を表示
‘Product’ 投稿タイプをカスタムフィールド ‘Price’ で並び替えて表示:
$args = array(
'post_type' => 'product',
'orderby' => 'meta_value_num',
'meta_key' => 'price',
);
$query = new WP_Query( $args );
スマートかどうかわかりませんが。
コピペ職人なので。
-
この返信は7年、 7ヶ月前にoisitが編集しました。
oisitさんありがとうございます。
これは、たとえば _color というmeta_keyを作って、
それに、取り出した値を入れて並び替えるということでしょうかね。
ちょっと、わたしの手には余るかもしれません。
関数リファレンス/WP Query
順序づけパラメータ
‘menu_order’ – 固定ページの表示順で並び替える。固定ページ(固定ページ編集画面のページ属性ボックス)と添付ファイル(ギャラリー内のメディアの順番に相当)で使うことが最も多いでしょう。しかしバラバラの値が入った ‘menu_order’ を持つ任意の投稿タイプに対して使うことができます(デフォルト値は 0)。
いろいろ取り回しが面倒なようですが(検索してみてください)、カスタム投稿に固定ページの属性をつけて、「順序」を入力して、それでソートする。
省力化・自動化には反するのと、店舗が増えたときどうするのかなと思わないでもない。
oisitさん、たびたびありがとうございます。
今回は、元データを修正した方が簡単なのでそれで対処することにします。
phpとか、基本がわかっていないのでなにをどこに当てはめるとか、
”なのか””なのか、ここは:なのに、なぜここは;なのなどなど、
とりあえず、検索して書かれていることを元に試行錯誤しています。
また、質問すると思いますので、そのときはよろしくお願いします。