Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




_wp_translate_postdata [ WordPress Function ]

_wp_translate_postdata ( $update = false, $post_data = null )
Parameters:
  • (bool) $update Are we updating a pre-existing post?
  • (array) $post_data Array of post data. Defaults to the contents of $_POST.
Returns:
  • (object|bool) WP_Error on failure, true on success.
Defined at:



Rename $_POST data from form names to DB post columns.

Manipulates $_POST directly.

Source


<?php
function _wp_translate_postdata$update false$post_data null ) {

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

    if ( 
$update )
        
$post_data['ID'] = (int) $post_data['post_ID'];

    if ( isset( 
$post_data['content'] ) )
        
$post_data['post_content'] = $post_data['content'];

    if ( isset( 
$post_data['excerpt'] ) )
        
$post_data['post_excerpt'] = $post_data['excerpt'];

    if ( isset( 
$post_data['parent_id'] ) )
        
$post_data['post_parent'] = (int) $post_data['parent_id'];

    if ( isset(
$post_data['trackback_url']) )
        
$post_data['to_ping'] = $post_data['trackback_url'];

    if ( !isset(
$post_data['user_ID']) )
        
$post_data['user_ID'] = $GLOBALS['user_ID'];

    if (!empty ( 
$post_data['post_author_override'] ) ) {
        
$post_data['post_author'] = (int) $post_data['post_author_override'];
    } else {
        if (!empty ( 
$post_data['post_author'] ) ) {
            
$post_data['post_author'] = (int) $post_data['post_author'];
        } else {
            
$post_data['post_author'] = (int) $post_data['user_ID'];
        }
    }

    
$ptype get_post_type_object$post_data['post_type'] );
    if ( isset(
$post_data['user_ID']) && ($post_data['post_author'] != $post_data['user_ID']) ) {
        if ( !
current_user_can$ptype->cap->edit_others_posts ) ) {
            if ( 
'page' == $post_data['post_type'] ) {
                return new 
WP_Error'edit_others_pages'$update ?
                    
__'You are not allowed to edit pages as this user.' ) :
                    
__'You are not allowed to create pages as this user.' )
                );
            } else {
                return new 
WP_Error'edit_others_posts'$update ?
                    
__'You are not allowed to edit posts as this user.' ) :
                    
__'You are not allowed to post as this user.' )
                );
            }
        }
    }

    
// What to do based on which button they pressed
    
if ( isset($post_data['saveasdraft']) && '' != $post_data['saveasdraft'] )
        
$post_data['post_status'] = 'draft';
    if ( isset(
$post_data['saveasprivate']) && '' != $post_data['saveasprivate'] )
        
$post_data['post_status'] = 'private';
    if ( isset(
$post_data['publish']) && ( '' != $post_data['publish'] ) && ( !isset($post_data['post_status']) || $post_data['post_status'] != 'private' ) )
        
$post_data['post_status'] = 'publish';
    if ( isset(
$post_data['advanced']) && '' != $post_data['advanced'] )
        
$post_data['post_status'] = 'draft';
    if ( isset(
$post_data['pending']) && '' != $post_data['pending'] )
        
$post_data['post_status'] = 'pending';

    if ( isset( 
$post_data['ID'] ) )
        
$post_id $post_data['ID'];
    else
        
$post_id false;
    
$previous_status $post_id get_post_field'post_status'$post_id ) : false;

    
// Posts 'submitted for approval' present are submitted to $_POST the same as if they were being published.
    // Change status from 'publish' to 'pending' if user lacks permissions to publish or to resave published posts.
    
if ( isset($post_data['post_status']) && ('publish' == $post_data['post_status'] && !current_user_can$ptype->cap->publish_posts )) )
        if ( 
$previous_status != 'publish' || !current_user_can'edit_post'$post_id ) )
            
$post_data['post_status'] = 'pending';

    if ( ! isset(
$post_data['post_status']) )
        
$post_data['post_status'] = $previous_status;

    if (!isset( 
$post_data['comment_status'] ))
        
$post_data['comment_status'] = 'closed';

    if (!isset( 
$post_data['ping_status'] ))
        
$post_data['ping_status'] = 'closed';

    foreach ( array(
'aa''mm''jj''hh''mn') as $timeunit ) {
        if ( !empty( 
$post_data['hidden_' $timeunit] ) && $post_data['hidden_' $timeunit] != $post_data[$timeunit] ) {
            
$post_data['edit_date'] = '1';
            break;
        }
    }

    if ( !empty( 
$post_data['edit_date'] ) ) {
        
$aa $post_data['aa'];
        
$mm $post_data['mm'];
        
$jj $post_data['jj'];
        
$hh $post_data['hh'];
        
$mn $post_data['mn'];
        
$ss $post_data['ss'];
        
$aa = ($aa <= ) ? date('Y') : $aa;
        
$mm = ($mm <= ) ? date('n') : $mm;
        
$jj = ($jj 31 ) ? 31 $jj;
        
$jj = ($jj <= ) ? date('j') : $jj;
        
$hh = ($hh 23 ) ? $hh -24 $hh;
        
$mn = ($mn 59 ) ? $mn -60 $mn;
        
$ss = ($ss 59 ) ? $ss -60 $ss;
        
$post_data['post_date'] = sprintf"%04d-%02d-%02d %02d:%02d:%02d"$aa$mm$jj$hh$mn$ss );
        
$post_data['post_date_gmt'] = get_gmt_from_date$post_data['post_date'] );
    }

    return 
$post_data;
}
?>

Examples [ wp-snippets.com ]

Google Arama Sonuçlarý

Dahasý ...

Kullanýcý Tartýþmalarý [ wordpress.org ]

- Bulunamadý -

Yeni bir konu yaz ...

0 User Note(s)

Henüz yok. Ýlk sen ol!

Yeni Ekle ...



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