| 1 |
<?php |
| 2 |
/* |
| 3 |
Name: 文章快速复制 |
| 4 |
URI: https://mp.weixin.qq.com/s/0W73N71wNJv10kMEjbQMGw |
| 5 |
Description: 在后台文章列表添加一个快速复制按钮,复制一篇草稿用于快速新建。 |
| 6 |
Version: 1.0 |
| 7 |
*/ |
| 8 |
is_admin() && wpjam_register_list_table_action('quick_duplicate', [ |
| 9 |
'title' => '快速复制', |
| 10 |
'response' => 'duplicate', |
| 11 |
'direct' => true, |
| 12 |
'data_type' => 'post_type', |
| 13 |
'callback' => 'wpjam_duplicate_post', |
| 14 |
'post_type' => fn($v) => $v != 'attachment' && wpjam_get_post_type_setting($v, 'duplicatable') !== false, |
| 15 |
]); |
| 16 |
|
| 17 |
function wpjam_duplicate_post($post_id){ |
| 18 |
$data = wpjam_except(get_post($post_id, ARRAY_A), ['ID', 'post_date_gmt', 'post_modified_gmt', 'post_name']); |
| 19 |
$added = wpjam_try('WPJAM_Post::insert', array_merge($data, [ |
| 20 |
'post_status' => 'draft', |
| 21 |
'post_author' => get_current_user_id(), |
| 22 |
'post_date' => wpjam_date('Y-m-d H:i:s'), |
| 23 |
'post_modified' => wpjam_date('Y-m-d H:i:s'), |
| 24 |
'tax_input' => wpjam_fill(get_object_taxonomies($data['post_type']), fn($tax)=> wp_get_object_terms($post_id, $tax, ['fields'=>'ids'])) |
| 25 |
])); |
| 26 |
|
| 27 |
foreach(get_post_custom_keys($post_id) ?: [] as $key){ |
| 28 |
if($key == '_thumbnail_id' || ($key != 'views' && !is_protected_meta($key, 'post'))){ |
| 29 |
foreach(get_post_meta($post_id, $key) as $value){ |
| 30 |
add_post_meta($added, $key, $value, false); |
| 31 |
} |
| 32 |
} |
| 33 |
} |
| 34 |
|
| 35 |
return $added; |
| 36 |
} |