サポート » 使い方全般 » 関数で作った値をmeta_keyの値として使うには?

  • 解決済 ioxrxogi

    (@ioxrxogi)


    解決したと思った質問ですが、まだ解決していませんでした。

    投稿フォームでの自動入力、あるいは、、、。

    カスタムフィールドgroup_numberに、sh22とあったとして、以下のプログラムで000022と取り出すことはできたのですが、

    <?php echo sprintf(‘%06d’,mb_substr((post_custom(‘group_number’)),2,10)); ?>

    これを、記事を並び替えるためのソートキーとしてどう使えば良いかわかりません。
    お知恵をお貸しください。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • 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 );

    スマートかどうかわかりませんが。
    コピペ職人なので。

    • この返信は3年、 9ヶ月前にoisitが編集しました。

    oisitさんありがとうございます。

    これは、たとえば _color というmeta_keyを作って、
    それに、取り出した値を入れて並び替えるということでしょうかね。

    ちょっと、わたしの手には余るかもしれません。

    関数リファレンス/WP Query

    順序づけパラメータ
    ‘menu_order’ – 固定ページの表示順で並び替える。固定ページ(固定ページ編集画面のページ属性ボックス)と添付ファイル(ギャラリー内のメディアの順番に相当)で使うことが最も多いでしょう。しかしバラバラの値が入った ‘menu_order’ を持つ任意の投稿タイプに対して使うことができます(デフォルト値は 0)。

    いろいろ取り回しが面倒なようですが(検索してみてください)、カスタム投稿に固定ページの属性をつけて、「順序」を入力して、それでソートする。

    省力化・自動化には反するのと、店舗が増えたときどうするのかなと思わないでもない。

    oisitさん、たびたびありがとうございます。

    今回は、元データを修正した方が簡単なのでそれで対処することにします。

    phpとか、基本がわかっていないのでなにをどこに当てはめるとか、
    ”なのか””なのか、ここは:なのに、なぜここは;なのなどなど、
    とりあえず、検索して書かれていることを元に試行錯誤しています。

    また、質問すると思いますので、そのときはよろしくお願いします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「関数で作った値をmeta_keyの値として使うには?」には新たに返信することはできません。