我有一些代码可以创建从上传图片到媒体库的帖子,这很好用:
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;
}
如果我手动创建帖子,我不希望它从图片上传中创建新帖子。换句话说,我希望代码只有在我将图像直接上传到媒体库时才会创建新帖子,而不是在我手动将图像添加到新帖子时。
非常感谢任何帮助!
答案 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;
}
}