简体   繁体   中英

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, ie 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?

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.

The most common issue is that reserved WordPress terms are used in the form which breaks the WordPress rewrite rules upon form submission. See this article for more details on it and how to solve the problem.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM