Make WordPress Core

Opened 3 years ago

Last modified 18 months ago

#18692 new enhancement

wp_insert_post() enhancements

Reported by: sirzooro Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 3.2.1
Component: General Keywords: has-patch dev-feedback
Focuses: Cc:


I have created enhancement for wp_insert_post() function. There re two changes:

  • allows to return WP_Error from wp_insert_post_data - in this case function returns that value (or 0 if param $wp_error == false) and do not continue;
  • filter categories, tags and other taxonomies through new filters: wp_insert_post_category, wp_insert_post_tags and wp_insert_post_tax. New code also checks if these filters returned WP_Error;

These changes will allow me to implement following features in my WyPiekacz plugin:

  • do not create new post when it does not satisfy appropriate rules. Although WP code will not display that error by itself (#10480, #18266), I will be able to display appropriate error from plugin code (at least when normal editor was used). This will also help me to stop flood of automated post spam;
  • allow to review tags attached to post submitted for review - this way tags will be actually created when post will be published; before this they will be stored as post metadata. In order to do this I need to modify tags - unfortunately wp_insert_post_data filter does not allow to modify them (it allows read-only access to them only).

Attachments (1)

post.php.diff (1.9 KB) - added by sirzooro 3 years ago.

Download all attachments as: .zip

Change History (4)

sirzooro3 years ago

comment:1 mikeschinkel3 years ago

  • Cc mikeschinkel@… added
  • Keywords dev-feedback added

+1 for the control (I'll defer comments on committers.)

Related #18713

Version 0, edited 3 years ago by mikeschinkel (next)

comment:2 sirzooro18 months ago

It will be good to provide integration with XML-RPC too - recently it was enabled globally, so I expect more automated publishing tools will start using it in near future.

Note: See TracTickets for help on using tickets.