wordpress从图片上传创建帖子

时间:2014-07-02 12:49:13

标签: php wordpress

我有一些代码可以创建从上传图片到媒体库的帖子,这很好用:

add_action('add_attachment', 'create_post');
function create_post( $attach_ID ) {

$attachment = get_post( $attach_ID );

$my_post_data = array(
            'post_title' => $attachment->post_title,
            'post_type' => 'post',
            'post_category' => array('0'),
            'post_status' => 'publish'
);
$post_id = wp_insert_post( $my_post_data );

// attach media to post
wp_update_post( array(
    'ID' => $attach_ID,
    'post_parent' => $post_id,
) );

set_post_thumbnail( $post_id, $attach_ID );

return $attach_ID;
}

如果我手动创建帖子,我不希望它从图片上传中创建新帖子。换句话说,我希望代码只有在我将图像直接上传到媒体库时才会创建新帖子,而不是在我手动将图像添加到新帖子时。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

也许有更好的方法,但你可以使用全局变量$ pagenow。

global $pagenow;
if($pagenow == 'upload.php'){
    //your code here
}

答案 1 :(得分:0)

我从Wizpert的开发者那里得到了一些帮助。他使用以下代码使其工作

add_action('add_attachment', 'create_post');

function create_post( $attach_ID ) {

$attachment = get_post( $attach_ID );

if(!$attachment->post_parent)
{
    $my_post_data = array(
    'post_title' => $attachment->post_title,
    'post_type' => 'post',
    'post_category' => array('0'),
    'post_status' => 'publish'
    );

    $post_id = wp_insert_post( $my_post_data );

    // attach media to post
    wp_update_post( array(
    'ID' => $attach_ID,
    'post_parent' => $post_id,
    ) );

    set_post_thumbnail( $post_id, $attach_ID );

    return $attach_ID;
}
}