fish_ball fish_ball - 5 months ago 27x
PHP Question

Wordpress: Submitting a post method form on single custom post type page returns 404

I'm now developing on a Wordpress theme.

I have a custom post type named


register_post_type($class::$post_type, array(
'label' => $class::$post_type_name,
'description' => $class::$post_type_description,
// ....

And I'm editing the
template, I have a form on it:

<form id="form_main" method="post" action="">
<?php wp_nonce_field(); ?>
<!-- Other fields -->

When I open the url
, the page goes well.

But when I submit the form, i.e. request the url with a
method, it was causing a
response, the url is just simply the same.

What could be the matter?


After a long period of debugging, I found the reason: the $_POST fields affects the query.

In my case, I submit a field with key and values:

$_POST['title'] = 'new title';

I intend to create a new post with this title.

But in fact, the default query use this field as a where condition to filter the current page, and finally got no results.

So, when posting data, BE AWARE of the reserved field names:


  • s
  • p
  • title
  • page

For more, check about the document.