2017-03-07 14 views

答えて

0

ハインダーの答えは素晴らしいですが、OPごとにデータベースにデータを保存しません。

これは多くのオプションがあるため、ここでは難しくなり始めます。

データはさまざまな場所に簡単に保存できますが、意味的には正しくないか、長期間維持することはできません。オプションテーブル内の1つのオプションで

function save_request($data){ 

    $opts = get_option('contact_requests'); 

    if(! $opts || ! is_array($opts)){ 
     $opts = array(); 
    } 

    $opts[] = $data; 

    update_option('contact_requests', $opts); 

} 

これもdiaplying、保存して、数百の接触を要求した後、最初の場所でのデータベースのポイントを破るために遅い要求を意味するだろうし、データの並べ替えが手間がかかります。

本当に最適な方法はカスタムデータベーステーブルを用意することですが、このパスを終了するときには考慮すべきことがたくさんあります。

https://code.tutsplus.com/tutorials/custom-database-tables-creating-the-table--wp-28124

カスタムポストタイプ

これは私がこの問題にアプローチする方法をです。

おそらく、あなたは "contact_requests"というカスタム投稿タイプを作成し、連絡先リクエストを表すポストメタを含む投稿を作成することができます。

このようにして、管理者は既にすばらしいリストを取得しており、必要に応じてデータをすばやく簡単に分類してアクセスできます。これは、何十万ものエントリを通じて安定して高速になります。

function save_request($data){ 

    $content = ''; 

    foreach($data as $key => $name){ 
     $content .= sprintf('%s - %s' . PHP_EOL, $key, $name); 
    } 

    $post_data = array(
     'post_title' => 'Contact Request ' . esc_html($data['name']), 
     'post_content' => $content, 
     'post_type' => 'contact_requests' 
    ); 
    $post_id = wp_insert_post($post_data); 

    //Add Post Meta Here 
    add_post_meta($post_id, 'contact_name', esc_html($data['name'])); 
    add_post_meta($post_id, 'contact_email', esc_html($data['email'])); 
    add_post_meta($post_id, 'contact_message', esc_html($data['message'])); 

    return $post_id; 

}