fish_ball fish_ball - 6 months ago 39
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

activity
:

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


And I'm editing the
single-activity.php
template, I have a form on it:

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


When I open the url
http://localhost/activity/slug/
, the page goes well.

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

What could be the matter?

Answer

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:

like:

  • s
  • p
  • title
  • page

For more, check about the document.

Comments