联系表格的Wordpress插件开发

时间:2017-03-07 06:52:25

标签: php wordpress

我正在为联系表单开发一个简单的WordPress插件。但我不知道如何将信息保存在数据库中?你能提供一些参考资料吗?

1 个答案:

答案 0 :(得分:0)

Haninder的答案有一个很好的开始,但根据OP不会将数据存储在数据库中。

这是开始变得棘手的地方,因为有很多选择。

您可以轻松地将数据存储在不同的位置,但没有一个在语义上是正确的,或者可以在很长一段时间内维护。

在选项表中的单个选项中

function save_request( $data ){ 

    $opts = get_option( 'contact_requests' );

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

    $opts[] = $data;

   update_option( 'contact_requests', $opts );

}

这意味着在数百个联系请求之后,首先要保存和破坏数据库点的缓慢请求,同时对数据进行拨号和排序会变得棘手。

最好的办法是拥有一个自定义数据库表,但是沿着这条路走下去还有很多需要考虑。

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

自定义帖子类型

这就是我如何处理这个问题。

也许你可以创建一个自定义的帖子类型,比如" contact_requests"并使用一些post meta创建一个帖子来表示联系请求。

通过这种方式,您可以在管理员中获得整齐的列表,并可以根据需要快速轻松地对数据进行排序和访问。通过成千上万的条目,这将是稳定和快速的。

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;

}