首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >联系人表单的Wordpress插件开发

联系人表单的Wordpress插件开发
EN

Stack Overflow用户
提问于 2017-03-07 14:52:25
回答 1查看 68关注 0票数 0

我正在开发一个简单的联系表单的WordPress插件。但是我不知道如何将信息保存在数据库中?你能举出一些推荐人吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-07 15:21:52

Haninder的答案有一个很好的开始,但没有按照操作将数据存储在数据库中。

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

您可以轻松地将数据存储在不同的位置,但没有一个位置在语义上是正确的,也没有一个位置可以长期维护。

options表中的单个选项中的

代码语言:javascript
复制
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

自定义帖子类型

这就是我处理这个问题的方式。

也许你可以创建一个自定义的post类型,比如"contact_requests“,然后创建一个带有一些post元的post来表示一个联系请求。

通过这种方式,您已经在管理中获得了一个整洁的列表,并且可以根据需要快速轻松地对数据进行排序和访问。这将稳定而快速地处理数十万个条目。

代码语言:javascript
复制
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;

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42642002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档