inc2734/mw-wp-form

お問い合わせ内容データベース保存時にslug生成処理の時間が掛かってしまう

Opened this issue · 1 comments

フォームから、何回もお問い合わせがあった場合に、
同じタイトルのpostが生成されるため、wp_insert_post()の処理が遅くなってしまうようです。

@nakazonot @inc2734

WordPress 4.2.2 + MW WP Form 2.7.0 と言う古い環境下ですが、同じ現象に遭遇しました。
wp_unique_post_slug() 内部で、申込件数に比例してDBへの読み取りアクセスが発生します。

wp_insert_post( $postarr, $wp_error = false )$postarr['post_name'] にユニーク値を指定する事で回避できるようです。
post_name を変える事で MW WP Form にどれだけの影響があるのか掴めていませんが、ご参考になりましたら幸いです。

  1. $saved_mail_id = wp_insert_post( array(
    'post_title' => $this->parse_mail_content( $this->Mail->subject ),
    'post_status' => 'publish',
    'post_type' => MWF_Functions::get_contact_data_post_type_from_form_id( $form_id ),
    ) );
  2. https://github.com/WordPress/WordPress/blob/4.2.2/wp-includes/post.php#L3094-L3325
  3. https://github.com/WordPress/WordPress/blob/4.2.2/wp-includes/post.php#L3783-L3791