如何在WordPress中克隆页面?新手网页开发者技术咨询
如何在WordPress中克隆页面
作为新手,克隆页面有两种简单实用的方法,不用复杂操作就能搞定:
方法一:用插件快速克隆(推荐新手)
- 登录WordPress后台,进入「插件」→「添加新插件」
- 搜索「Duplicate Page」,找到后点击「安装」→「启用」
- 启用后,去「页面」→「所有页面」,每个页面标题下方会多出一个「Clone」(克隆)按钮,点击就能直接生成该页面的副本
- 副本默认是草稿状态,你可以点击「编辑」修改内容,再发布就行
方法二:手动添加代码(无需插件)
如果你不想装插件,也可以通过添加少量代码实现:
- 进入「外观」→「主题编辑器」,找到当前主题的「functions.php」文件
- 在文件末尾添加以下代码:
function duplicate_post_as_draft(){ global $wpdb; if (! (isset($_GET['post']) || isset($_POST['post']) || (isset($_REQUEST['action']) && 'duplicate_post_as_draft' == $_REQUEST['action']) ) ) { wp_die('No post to duplicate has been supplied!'); } $post_id = (isset($_GET['post']) ? absint($_GET['post']) : absint($_POST['post'])); $post = get_post($post_id); if (isset($post) && $post != null) { $args = array( 'comment_status' => $post->comment_status, 'ping_status' => $post->ping_status, 'post_author' => get_current_user_id(), 'post_content' => $post->post_content, 'post_excerpt' => $post->post_excerpt, 'post_name' => $post->post_name . '-copy', '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 ); $new_post_id = wp_insert_post($args); $taxonomies = get_object_taxonomies($post->post_type); 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); } $post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id"); if (count($post_meta_infos)!=0) { $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; if( $meta_key == '_wp_old_slug' ) continue; $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); } 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_duplicate_post_as_draft', 'duplicate_post_as_draft'); function duplicate_post_link($actions, $post) { if (current_user_can('edit_posts')) { $actions['duplicate'] = '<a href="admin.php?action=duplicate_post_as_draft&post=' . $post->ID . '" title="克隆此页面" rel="permalink">克隆</a>'; } return $actions; } add_filter('page_row_actions', 'duplicate_post_link', 10, 2);
- 保存修改后,回到「所有页面」,每个页面的操作栏里就会出现「克隆」选项,点击即可生成草稿状态的副本
注意:修改主题文件前最好先备份,避免出错导致网站异常。
内容的提问来源于stack exchange,提问作者Marconel Van der Merwe
相关产品推荐
相关产品推荐

