Opened 11 years ago
Closed 11 years ago
#30454 closed defect (bug) (duplicate)
A slug can't be registered when it uses wp_insert_post function in wp_cron event
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Priority: | normal | |
| Severity: | normal | Version: | 4.1 |
| Component: | Posts, Post Types | Keywords: | |
| Focuses: | Cc: |
Description
When I execute below program, the slug is empty.
If post_status is pending, It occurs.
add_filter( 'cron_schedules', function() {
$schedules['panpanpan'] = array( 'interval' => 60, 'display' => 1 . 'min' );
return $schedules;
} );
register_activation_hook( __FILE__, function(){
$interval = 60;
$action_time = time() + $interval;
wp_clear_scheduled_hook( 'panpanpan_event' );
wp_schedule_event( $action_time, 'panpanpan', 'panpanpan_event' );
} );
add_action( 'panpanpan_event', function() {
$args = array(
'post_name' => 'test_slug_' . time(),
'post_date' => date_i18n('Y/m/d'),
'post_type' => 'post',
'post_status' => 'pending',
'post_title' => 'title',
'post_content' => 'content'
);
wp_insert_post($args);
} );
wp-includes/post.php line 3165 - 3167. I think that current_user_can function is not operate in wp_cron event.
if ( 'pending' == $post_status && !current_user_can( 'publish_posts' ) ) {
$post_name = '';
}
Attachments (1)
Change History (3)
#1
@
11 years ago
The current_user_can function does operate when WP_Cron is run, but the problem is that the cron runs as an unprivileged user -- which does not possess the publish_posts capability.
#2
@
11 years ago
- Milestone Awaiting Review deleted
- Resolution set to duplicate
- Status changed from new to closed
- Summary changed from A slug can't be registered when it uses wp_insert_post fuinction in wp_cron event to A slug can't be registered when it uses wp_insert_post function in wp_cron event
Duplicate of #19373.
Note: See
TracTickets for help on using
tickets.
This patch solve this problem