2017-10-10 11 views
0

私はWPのカスタムポスト値を取得しようとしています。私は複数のカスタムフィールドの値を持つことができます。だから私はコードでハードコードをしたくない。だから私はWordpressカスタムフィールド値を取得

get_post_meta 

またはいくつかの他のすべてのキーを取得するには、この関数に、値のペアを使用したい私は

abc_email 
abc_website 

のようなキーと値の何かに接頭辞を提供していることを考えていますそのabcで始まります。そうすれば、バックエンドに値を追加するだけで、コードを更新する必要はありません。 1つの方法は、上記の関数を使用してすべてのメタデータを取得し、それをループしてフィルタリングすることです。しかし、私が探しているパターンで送ることができる他の方法はありますか?

おかげ

+1

ドキュメントを見ましたか? https://developer.wordpress.org/reference/functions/get_post_meta/#comment-2124 –

答えて

1

あなたは直接

  • が、これは、より複雑ですが、まだループを含み、あなたは可能性が何を提供していません(ここではhttps://wordpress.stackexchange.com/questions/104434/where-are-custom-field-values-stored-in-the-database関連テーブルなど)の接頭辞を含むポストエントリのデータベースを照会できWPとPHPを使用してください。あなたは、未知数のために食料調達したい場合は、ループを持っているか、インデックスをinterogateうなど

私は、あなたの質問に何かが欠けているかもしれませんが、まっすぐ進むようだ:

あなたはこのシナリオを回避しようとしています。

process_field($abc_known1); 
process_field($abc_known2); 

// continually edit code for new entries e.g.: 
process_field($abc_NEW1); 

このようなものは、後で変更を加えることなく後で処理されます。

// get array of ALL cust fields for post 
$all_cust_fields = get_post_meta(get_queried_object_id()); 
foreach ($all_cust_fields as $key => $value) { 
    // some function for determing if $value starts with "abc_" 
    // if so either: 
    //  add to an "abc" array for later use/processing 
    // or take action in this loop e.g. 

    process_field($value); 
} 

「abc_」という接頭辞が付いているキーと値について話しているかどうかはわかりませんが、同じ原則が適用されます。

0

あなたは、このようなコードを記述する必要があり、

$email_meta = get_post_meta('your_post_id', 'abc_email', true); 
$website_meta = get_post_meta('your_post_id', 'abc_website', true); 

それとも

あなたはこれらのリンクをたどることができ、

example

example

希望すると、これが役立ちます。

関連する問題