WordPress Frontend Post Form (Bootstrap Modal) Not Creating Post

The nonce field is not added to the form, and is therefore not passed in the POST request when submitting the form. Thus, isset( $_POST['post_nonce_field'] ) returns false and the conditional is never true. Try moving the nonce field to someplace between the opening form tag ( <form>) and closing form tag (</form>).

EDIT: The problem is actually in your JavaScript. The “submit” link you currently have submits the form, but doesn’t stop propagation of the normal on click event for a link, which is actually following the link. Thus, as the href attribute is empty, it will actually point you to the current page via a normal GET request.

To fix this, you could add return false; right behind the submit() JavaScript method call for the form. However, a better way to achieve this would be to use a button or submit element, or at least call the form submission function through JavaScript so you can use preventDefault instead of returning false.

TL;DR Use a button or input submit element (best choice), call the submit through jQuery and add e.preventDefault() (second best) or add return false; after the JavaScript submit() call (worst — but easiest — solution).