do_action( 'wpml_admin_make_post_duplicates', int $master_post_id )
- Loại
- action
- Danh mục
- Chèn nội dung
- Phiên bản WPML
- 3.2
Miêu tả
Tạo hoặc cập nhật bài viết nhân bản từ một bài viết “gốc”. Action hook này được dành riêng cho các lệnh gọi back-end của trang quản trị.
Đối số
- $master_post_id
- (int) (Bắt buộc) ID của bài viết để nhân bản. Nó có thể là ID của một bài viết, trang hoặc bài viết tùy chỉnh. “Bài viết gốc” không nhất thiết phải ở ngôn ngữ mặc định.
Ví dụ sử dụng
Ví dụ
// this will create duplicates for the "Hello World!" post do_action( 'wpml_admin_make_post_duplicates', 1 );
Trong ví dụ bên dưới, chúng ta tạo bản nhân bản cho một bài viết, trang hoặc bài viết tùy chỉnh khi nhấp vào “publish” từ màn hình trang quản trị “edit-post”.
Một ví dụ nâng cao hơn
add_action( 'wp_insert_post', 'my_duplicate_on_publish' );
function my_duplicate_on_publish( $post_id ) {
global $post;
// don't save for autosave
if (is_null($post))
{
return $post_id;
}
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return $post_id;
}
// dont save for revisions
if ( isset( $post->post_type ) && $post->post_type == 'revision' ) {
return $post_id;
}
// we need this to avoid recursion see add_action at the end
remove_action( 'wp_insert_post', 'my_duplicate_on_publish' );
// make duplicates if the post being saved:
// #1. is not a duplicate of another or
// #2. does not already have translations
$is_translated = apply_filters( 'wpml_element_has_translations', '', $post_id, $post->post_type );
if ( !$is_translated ) {
do_action( 'wpml_admin_make_post_duplicates', $post_id );
}
// must hook again - see remove_action further up
add_action( 'wp_insert_post', 'my_duplicate_on_publish' );
}
Các hook liên quan
wpml_set_element_language_details, wpml_make_post_duplicates, wpml_copy_post_to_language, wpml_delete_package, wpml_import_get_trid_from_imported_translations, wpml_register_string, wpml_register_single_string, wpml_show_package_language_ui, wpml_delete_package_action