Switch language

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




wp_insert_attachment [ WordPress Function ]

wp_insert_attachment ( $object, $file = false, $parent = 0 )
Parameters:
  • (string|array) $object Arguments to override defaults.
  • (string) $file Optional filename.
  • (int) $parent Parent post ID.
Uses:
Returns:
  • (int) Attachment ID.
Defined at:



Insert an attachment.

If you set the 'ID' in the $object parameter, it will mean that you are updating and attempt to update the attachment. You can also set the attachment name or title by setting the key 'post_name' or 'post_title'.

You can set the dates for the attachment manually by setting the 'post_date' and 'post_date_gmt' keys' values.

By default, the comments will use the default settings for whether the comments are allowed. You can close them manually or keep them open by setting the value for the 'comment_status' key.

The $object parameter can have the following: 'post_status' - Default is 'draft'. Can not be overridden, set the same as parent post. 'post_type' - Default is 'post', will be set to attachment. Can not override. 'post_author' - Default is current user ID. The ID of the user, who added the attachment. 'ping_status' - Default is the value in default ping status option. Whether the attachment can accept pings. 'post_parent' - Default is 0. Can use $parent parameter or set this for the post it belongs to, if any. 'menu_order' - Default is 0. The order it is displayed. 'to_ping' - Whether to ping. 'pinged' - Default is empty string. 'post_password' - Default is empty string. The password to access the attachment. 'guid' - Global Unique ID for referencing the attachment. 'post_content_filtered' - Attachment post content filtered. 'post_excerpt' - Attachment excerpt.

Source


<?php
function wp_insert_attachment($object$file false$parent 0) {
    global 
$wpdb$user_ID;

    
$defaults = array('post_status' => 'inherit''post_type' => 'post''post_author' => $user_ID,
        
'ping_status' => get_option('default_ping_status'), 'post_parent' => 0,
        
'menu_order' => 0'to_ping' =>  '''pinged' => '''post_password' => '',
        
'guid' => '''post_content_filtered' => '''post_excerpt' => '''import_id' => 0'context' => '');

    
$object wp_parse_args($object$defaults);
    if ( !empty(
$parent) )
        
$object['post_parent'] = $parent;

    unset( 
$object'filter' ] );

    
$object sanitize_post($object'db');

    
// export array as variables
    
extract($objectEXTR_SKIP);

    if ( empty(
$post_author) )
        
$post_author $user_ID;

    
$post_type 'attachment';

    if ( ! 
in_array$post_status, array( 'inherit''private' ) ) )
        
$post_status 'inherit';

    
// Make sure we set a valid category.
    
if ( !isset($post_category) || == count($post_category) || !is_array($post_category) ) {
        
// 'post' requires at least one category.
        
if ( 'post' == $post_type )
            
$post_category = array( get_option('default_category') );
        else
            
$post_category = array();
    }

    
// Are we updating or creating?
    
if ( !empty($ID) ) {
        
$update true;
        
$post_ID = (int) $ID;
    } else {
        
$update false;
        
$post_ID 0;
    }

    
// Create a valid post name.
    
if ( empty($post_name) )
        
$post_name sanitize_title($post_title);
    else
        
$post_name sanitize_title($post_name);

    
// expected_slashed ($post_name)
    
$post_name wp_unique_post_slug($post_name$post_ID$post_status$post_type$post_parent);

    if ( empty(
$post_date) )
        
$post_date current_time('mysql');
    if ( empty(
$post_date_gmt) )
        
$post_date_gmt current_time('mysql'1);

    if ( empty(
$post_modified) )
        
$post_modified $post_date;
    if ( empty(
$post_modified_gmt) )
        
$post_modified_gmt $post_date_gmt;

    if ( empty(
$comment_status) ) {
        if ( 
$update )
            
$comment_status 'closed';
        else
            
$comment_status get_option('default_comment_status');
    }
    if ( empty(
$ping_status) )
        
$ping_status get_option('default_ping_status');

    if ( isset(
$to_ping) )
        
$to_ping preg_replace('|\s+|'"\n"$to_ping);
    else
        
$to_ping '';

    if ( isset(
$post_parent) )
        
$post_parent = (int) $post_parent;
    else
        
$post_parent 0;

    if ( isset(
$menu_order) )
        
$menu_order = (int) $menu_order;
    else
        
$menu_order 0;

    if ( !isset(
$post_password) )
        
$post_password '';

    if ( ! isset(
$pinged) )
        
$pinged '';

    
// expected_slashed (everything!)
    
$data compact( array( 'post_author''post_date''post_date_gmt''post_content''post_content_filtered''post_title''post_excerpt''post_status''post_type''comment_status''ping_status''post_password''post_name''to_ping''pinged''post_modified''post_modified_gmt''post_parent''menu_order''post_mime_type''guid' ) );
    
$data stripslashes_deep$data );

    if ( 
$update ) {
        
$wpdb->update$wpdb->posts$data, array( 'ID' => $post_ID ) );
    } else {
        
// If there is a suggested ID, use it if not already present
        
if ( !empty($import_id) ) {
            
$import_id = (int) $import_id;
            if ( ! 
$wpdb->get_var$wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE ID = %d"$import_id) ) ) {
                
$data['ID'] = $import_id;
            }
        }

        
$wpdb->insert$wpdb->posts$data );
        
$post_ID = (int) $wpdb->insert_id;
    }

    if ( empty(
$post_name) ) {
        
$post_name sanitize_title($post_title$post_ID);
        
$wpdb->update$wpdb->postscompact("post_name"), array( 'ID' => $post_ID ) );
    }

    
wp_set_post_categories($post_ID$post_category);

    if ( 
$file )
        
update_attached_file$post_ID$file );

    
clean_post_cache$post_ID );

    if ( ! empty( 
$context ) )
        
add_post_meta$post_ID'_wp_attachment_context'$contexttrue );

    if ( 
$update) {
        
do_action('edit_attachment'$post_ID);
    } else {
        
do_action('add_attachment'$post_ID);
    }

    return 
$post_ID;
}
?>

Examples [ wp-snippets.com ]

Google Arama Sonuçlarý

Dahasý ...

0 User Note(s)

Henüz yok. Ýlk sen ol!

Yeni Ekle ...



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