دوبل کردن نوشته یا پست یا پست تایپ بدون افزونه
با سلام خدمت شما همراهان تابناک وب ،دلایل مختلفی وجود داره که بخواید از یک نوشته یا برگه وردپرس تکثیر کنید. یکی از رایج ترین دلایل میتونه فراهم کردن یک راه آسان و ساده برای مشتریاتون باشه که بتونن از یک نوشته یا برگه ای که شما از قبل براشون آماده کردید المثنی بگیرند و چیزهایی که میخوان رو بدون اینکه بدونن هر چیزی رو چطور فرمت بندی کنند تغییر بدند.
انجام این کار اصلا سخت نیست چون خوشبختانه روش های مختلفی برای این کار هست یکی استفاده از افزونه ای به اسم duplicate-post که در پست قبل معرفی معرفی کردیم کافیه شما پلاگین رو از مخزن وردپرس دانلود کنید و اون رو در وردپرس خودتون نصب کنید. بعد از فعالسازی در قسمت تنظیمات گزینه ای به اسم Duplicate Post قرار میگیره که میتونید تنظیمات رو اونجوری که خودتون دوست دارید اعمال کنید. اما روش دیگر با یک هک ساد که کار دوبل کردن پست ها و پست تایپها رو انجام می دهد با افزودن کد ذیل به فانکشن دوبل کردن به مطابق تصویر ذیل به وب سایت شما اضافه می شود
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ ۴۲ ۴۳ ۴۴ ۴۵ ۴۶ ۴۷ ۴۸ ۴۹ ۵۰ ۵۱ ۵۲ ۵۳ ۵۴ ۵۵ ۵۶ ۵۷ ۵۸ ۵۹ ۶۰ ۶۱ ۶۲ ۶۳ ۶۴ ۶۵ ۶۶ ۶۷ ۶۸ ۶۹ ۷۰ ۷۱ ۷۲ ۷۳ ۷۴ ۷۵ ۷۶ ۷۷ ۷۸ ۷۹ ۸۰ ۸۱ ۸۲ ۸۳ ۸۴ ۸۵ ۸۶ ۸۷ ۸۸ ۸۹ ۹۰ ۹۱ ۹۲ ۹۳ ۹۴ ۹۵ ۹۶ ۹۷ ۹۸ ۹۹ ۱۰۰ ۱۰۱ ۱۰۲ ۱۰۳ |
/* * Function creates post duplicate as a draft and redirects then to the edit post screen - https://tabnakweb.com/ */ function rd_duplicate_post_as_draft(){ global $wpdb; if (! ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) { wp_die('No post to duplicate has been supplied!'); } /* * get the original post id */ $post_id = (isset($_GET['post']) ? $_GET['post'] : $_POST['post']); /* * and all the original post data then */ $post = get_post( $post_id ); /* * if you don't want current user to be the new post author, * then change next couple of lines to this: $new_post_author = $post->post_author; */ $current_user = wp_get_current_user(); $new_post_author = $current_user->ID; /* * if post data exists, create the post duplicate */ if (isset( $post ) && $post != null) { /* * new post data array */ $args = array( 'comment_status' => $post->comment_status, 'ping_status' => $post->ping_status, 'post_author' => $new_post_author, 'post_content' => $post->post_content, 'post_excerpt' => $post->post_excerpt, 'post_name' => $post->post_name, 'post_parent' => $post->post_parent, 'post_password' => $post->post_password, 'post_status' => 'draft', 'post_title' => $post->post_title, 'post_type' => $post->post_type, 'to_ping' => $post->to_ping, 'menu_order' => $post->menu_order ); /* * insert the post by wp_insert_post() function */ $new_post_id = wp_insert_post( $args ); /* * get all current post terms ad set them to the new post draft */ $taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names for post type, ex array("category", "post_tag"); foreach ($taxonomies as $taxonomy) { $post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slugs')); wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false); } /* * duplicate all post meta */ $post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id"); if (count($post_meta_infos)!=۰) { $sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) "; foreach ($post_meta_infos as $meta_info) { $meta_key = $meta_info->meta_key; $meta_value = addslashes($meta_info->meta_value); $sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'"; } $sql_query.= implode(" UNION ALL ", $sql_query_sel); $wpdb->query($sql_query); } /* * finally, redirect to the edit post screen for the new draft */ wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) ); exit; } else { wp_die('Post creation failed, could not find original post: ' . $post_id); } } add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' ); /* * Add the duplicate link to action list for post_row_actions */ function rd_duplicate_post_link( $actions, $post ) { if (current_user_can('edit_posts')) { $actions['duplicate'] = '<a href="admin.php?action=rd_duplicate_post_as_draft&post=' . $post->ID . '" title="Duplicate this item" rel="permalink">دوبل کردن</a>'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', ۱۰, ۲); /* for posts */ add_filter( 'page_row_actions', 'rd_duplicate_post_link', ۱۰, ۲); /* for pages */ add_filter( 'movie_row_actions', 'rd_duplicate_post_link', ۱۰, ۲); /* a custom post called movie */ |