如何在 WordPress 中复制页面? (一步步)
已发表: 2022-05-29创建 WordPress 重复页面与复制和粘贴内容的传统方法有很大不同。 在创建 WordPress 重复页面时,您需要注意更多的事情,您将在这篇详细的帖子中看到。
在 WordPress 中创建重复页面可以节省您重新设计网站以及对内容进行一些更改或使用相同的布局来复制网站的不同页面的大量时间和精力。 无论是什么原因,您都可以通过多种方式轻松地为您的网站复制 WordPress 页面。
在本教程中,我们将告诉您如何使用不同的可用选项在 WordPress 中复制页面,即不使用或不使用插件,并且不影响您的网站指标。
WordPress重复页面的含义是什么,为什么需要它们?
WordPress 的重复页面正是它的名字。 它是原始页面的副本或副本,您可以对其进行编辑或更新而不会影响原始页面。
当您考虑为您的网站创建一个 WordPress 重复页面时,这背后主要有两个动机,这比为您的网站创建一个全新的页面更有意义。
更新内容
如果页面的布局保持不变并且您只需要更新内容,那么创建 WordPress 重复页面是比创建全新页面更有价值的选择。 它不仅减少了复制页面的工作量,而且节省了大量时间和其他资源。
让我们通过一个例子来理解它,假设您必须为您的网站创建一个登录页面,但它应该保持相同的布局并且必须具有与主页相同的内容。 在这种情况下,创建主页的副本或重复页面并对其进行一些更改,比创建一个全新的页面更有意义。
通过这种方式,您可以节省宝贵的时间并减少大量工作。
用于分期或实验目的
如果您对当前页面的设计不满意,并且想要对其进行编辑或某些更改。 在这种情况下,您将不确定最终页面的外观,同时您不希望丢失当前版本的结构。
特别是,如果您比较两种设计并确定旧的设计更好,则重复页面将让您进行大量实验,您可以发挥所有可用的创造力和选项,而不会冒原始页面设计的风险。 您还可以删除重复页面,而不必担心丢失原始页面内容。
现在让我们看看如何复制带有或不带有插件的 WordPress 页面。
如何使用插件复制 WordPress 页面?
WordPress 以其高度的可定制性和灵活性而闻名。 WordPress 上几乎所有内容都始终有一个 WordPress 插件可用。 同样,如果您希望在 WordPress 上复制页面,您可以使用 WordPress 存储库中提供的帮助插件以及第三方插件目录。
由于大多数 WordPress 用户是初学者并且不喜欢购买高级插件,因此我们为他们列出了一些您可以尝试的最好的免费 WordPress 重复页面插件。
Yoast重复帖子
最易于访问和最用户友好的插件之一,可帮助您通过简单的步骤复制页面。 您需要做的就是首先从 WordPress 存储库安装Yoast Duplicate post WordPress 插件。
转到您的WordPress 仪表板 > 插件 > 添加新的并搜索“ Yoast Duplicate Post ”。 找到插件后,单击安装按钮,然后单击激活,就完成了。
成功安装并激活插件后,转到您的帖子部分,然后单击所有帖子,如下图所示。 您会在帖子标题下方找到两个链接克隆和“新草稿”选项。
现在,当您单击克隆链接时,它将复制帖子的副本,您将无法在帖子编辑器中打开它。 但是,如果您选择单击“新草稿”链接,它将立即有一个 WordPress 重复帖子,您将能够在帖子编辑器中打开重复版本。
同样,您还会在页面标题下方找到相同的链接,如下图所示:
如何在没有插件的情况下在 WordPress 中复制页面?
如果您不想使用任何 WordPress 插件来复制页面,最好的替代选择是使用手动方法。 在此方法中,您可以在 function.php 文件中添加一些代码,也可以手动复制并粘贴页面的代码。
现在让我们看看如何继续。
如何复制 WordPress 页面或通过 function.php 文件发布?
您可以尝试在 WordPress 中复制页面或发布的第一种手动方法是编辑您的 function.php 文件。 但在处理或对您的 WordPress 文件进行任何更改之前,请确保您首先创建了网站的完整备份。
现在要访问您的 function.php 文件,您可以使用 FTP(文件传输协议)客户端,例如 FileZilla 或通过 cPanel(如果提供)。 一旦您可以访问所有文件,请转到您的 function.php 文件并在编辑器中打开它。 现在,您需要做的就是在文件中添加下面给定的代码,保存并再次上传。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
/* * Function for post duplication. Dups appear as drafts. User is redirected to the edit screen */ 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!' ) ; } /* * Nonce verification */ if ( ! isset ( $ _GET [ 'duplicate_nonce' ] ) | | ! wp_verify_nonce ( $ _GET [ 'duplicate_nonce' ] , basename ( __FILE__ ) ) ) return ; /* * get the original post id */ $ post_id = ( isset ( $ _GET [ 'post' ] ) ? absint ( $ _GET [ 'post' ] ) : absint ( $ _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 just in two SQL queries */ $ 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 ) ; } /* * 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="' . wp_nonce_url ( 'admin.php?action=rd_duplicate_post_as_draft&post=' . $ post - > ID , basename ( __FILE__ ) , 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>' ; } return $ actions ; } add_filter ( 'post_row_actions' , 'rd_duplicate_post_link' , 10 , 2 ) ; |
现在上面的代码片段只会让你复制 WordPress 帖子。 但是要复制 WordPress 页面,您必须将上述代码的最后一行替换为下面给出的代码段:
1 |
add_filter ( 'page_row_actions' , 'rd_duplicate_post_link' , 10 , 2 ) ; |
当您成功地将给定的代码片段添加到 function.php 文件时,您的帖子和页面菜单将有一个复制按钮选项。
如何手动复制 WordPress 页面?
如果您不想进行任何更改或编辑您的 config.php 文件,您可以做的最好的事情是复制并粘贴您想要复制的页面或帖子的代码。 为此,您需要做的就是
第1 步:打开要复制的页面或帖子(在块编辑器中)。
Step2:点击页面右上角的三个点,如下图所示。
第三步:点击代码编辑器并复制页面或帖子的所有代码。
第四步:现在,点击添加新页面或帖子。
步骤 5:在块编辑器中打开新页面或帖子,类似地单击代码编辑器,就像您在步骤 2 中所做的一样,然后粘贴您复制的代码。
Step6:现在你可以变成一个可视化编辑器,你会发现帖子或页面已经成功克隆。
虽然,这种方法似乎很耗时,并且对于每个帖子或页面,您必须手动复制和粘贴代码。 因此,我们强烈建议您借助 WordPress 重复页面插件,它们可以在几秒钟内完成相同的工作。
现在您已经学会了复制帖子和页面的不同方法,那么删除或删除它们呢? 让我们来了解一下。
如何删除或删除 WordPress 重复页面或帖子?
成功创建重复的页面和帖子后,如果您要删除或删除它们,整个过程非常简单。
首先,您需要从 WordPress 仪表板转到您的页面或帖子,然后选择重复的页面或帖子。
您会发现多个链接或选项,例如“编辑”、“快速编辑”和“垃圾箱”。 要删除或删除重复的页面或帖子,您必须单击垃圾箱链接。 但是,您的重复帖子/页面尚未永久删除。 它已移至垃圾箱,您仍然可以访问该页面或发布帖子。
要从您的 WordPress 中永久删除或删除它,您需要浏览垃圾文件夹并从许多批量操作的下拉列表中选择“永久删除”选项,然后检查您要删除的相关页面或帖子,如下所示:
单击应用按钮,您就完成了。 您已经成功地从您的网站上删除了 WordPress 重复页面或帖子。 即使,如果您不小心删除了页面或帖子的克隆或复制副本,您仍然可以随时创建一个新副本。
概括
从上面的帖子中,您一定已经注意到,使用 WordPress 复制页面插件比手册更容易使用和更快的方法。 您不必冒编辑 PHP 文件的风险,也不会花费太多精力和时间。
但是,对于单个页面或帖子,手动方法可能是一个不错的选择,但对于使用插件的多个页面或帖子将是一个不错的选择。 您可以使用我们在这篇文章中提到的任何一个插件,也可以从提供各种特性和功能的大量其他可用选项中选择任何其他插件。
如果您选择这种方式,您肯定会节省大量时间和精力,并降低手动操作时出现任何错误的风险。
如果您知道任何其他似乎比我们在这篇文章中提到的更经济和更好的方法,请在下面的评论部分告诉我们。
经常问的问题
您可以在 WordPress 中复制页面吗?
是的,借助 WordPress 重复页面插件,您可以轻松地在 WordPress 中复制页面或帖子。 但是,您也可以通过编辑 function.php 文件来手动完成。
如何在没有插件的情况下在 WordPress 中复制页面?
您可以通过以下两种方法在没有插件的情况下复制 WordPress 中的页面:
1. 通过编辑你的 function.php 文件
2. 通过复制和粘贴您要复制或克隆的页面或帖子的代码。
克隆网站违法吗?
只要您没有获得作者的许可或主站点的版权,克隆网站是完全非法的。