de

wpseek.com
Eine auf WordPress spezialiserte Suchmaschine für Entwickler und Theme-Autoren




edit_post [ WordPress Function ]

edit_post ( $post_data = null )
Parameter:
  • (array) $post_data Optional.
Gibt zurück:
  • (int) Post ID.
Definiert in:



Update an existing post with values provided in $_POST.

Source


<?php
function edit_post$post_data null ) {

    if ( empty(
$post_data) )
        
$post_data = &$_POST;

    
// Clear out any data in internal vars.
    
unset( $post_data['filter'] );

    
$post_ID = (int) $post_data['post_ID'];
    
$post get_post$post_ID );
    
$post_data['post_type'] = $post->post_type;
    
$post_data['post_mime_type'] = $post->post_mime_type;

    
$ptype get_post_type_object($post_data['post_type']);
    if ( !
current_user_can$ptype->cap->edit_post$post_ID ) ) {
        if ( 
'page' == $post_data['post_type'] )
            
wp_die__('You are not allowed to edit this page.' ));
        else
            
wp_die__('You are not allowed to edit this post.' ));
    }

    
// Autosave shouldn't save too soon after a real save
    
if ( 'autosave' == $post_data['action'] ) {
        
$post =& get_post$post_ID );
        
$now time();
        
$then strtotime($post->post_date_gmt ' +0000');
        
$delta AUTOSAVE_INTERVAL 2;
        if ( (
$now $then) < $delta )
            return 
$post_ID;
    }

    
$post_data _wp_translate_postdatatrue$post_data );
    if ( 
is_wp_error($post_data) )
        
wp_die$post_data->get_error_message() );
    if ( 
'autosave' != $post_data['action'] && 'auto-draft' == $post_data['post_status'] )
        
$post_data['post_status'] = 'draft';

    if ( isset(
$post_data['visibility']) ) {
        switch ( 
$post_data['visibility'] ) {
            case 
'public' :
                
$post_data['post_password'] = '';
                break;
            case 
'password' :
                unset( 
$post_data['sticky'] );
                break;
            case 
'private' :
                
$post_data['post_status'] = 'private';
                
$post_data['post_password'] = '';
                unset( 
$post_data['sticky'] );
                break;
        }
    }

    
// Post Formats
    
if ( isset( $post_data['post_format'] ) ) {
        if ( 
current_theme_supports'post-formats'$post_data['post_format'] ) )
            
set_post_format$post_ID$post_data['post_format'] );
        elseif ( 
'0' == $post_data['post_format'] )
            
set_post_format$post_IDfalse );
    }

    
// Meta Stuff
    
if ( isset($post_data['meta']) && $post_data['meta'] ) {
        foreach ( 
$post_data['meta'] as $key => $value ) {
            if ( !
$meta get_post_meta_by_id$key ) )
                continue;
            if ( 
$meta->post_id != $post_ID )
                continue;
            if ( 
is_protected_meta$value['key'], 'post' ) || ! current_user_can'edit_post_meta'$post_ID$value['key'] ) )
                continue;
            
update_meta$key$value['key'], $value['value'] );
        }
    }

    if ( isset(
$post_data['deletemeta']) && $post_data['deletemeta'] ) {
        foreach ( 
$post_data['deletemeta'] as $key => $value ) {
            if ( !
$meta get_post_meta_by_id$key ) )
                continue;
            if ( 
$meta->post_id != $post_ID )
                continue;
            if ( 
is_protected_meta$meta->meta_key'post' ) || ! current_user_can'delete_post_meta'$post_ID$meta->meta_key ) )
                continue;
            
delete_meta$key );
        }
    }

    
add_meta$post_ID );

    
update_post_meta$post_ID'_edit_last'$GLOBALS['current_user']->ID );

    
wp_update_post$post_data );

    
// Now that we have an ID we can fix any attachment anchor hrefs
    
_fix_attachment_links$post_ID );

    
wp_set_post_lock$post_ID );

    if ( 
current_user_can$ptype->cap->edit_others_posts ) ) {
        if ( ! empty( 
$post_data['sticky'] ) )
            
stick_post$post_ID );
        else
            
unstick_post$post_ID );
    }

    return 
$post_ID;
}
?>

Beispiele [ wp-snippets.com ]

Top Google Suchergebnisse

Mehr ...

0 Nutzerkommentare

Noch keine. Sei der Erste!

Neu hinzufügen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics