如何复制 WordPress 帖子或页面?

已发表: 2020-11-03

复制页面或帖子使构建网站变得毫不费力。 它不仅仅是复制和粘贴内容。

WordPress 帖子和页面复制可以帮助您通过单击调整主题设置、SEO 数据和图像。

有多个实例需要构建页面或帖子,但内容除外,它们完全相似。 例如,只需更改一些内容即可创建具有相同外观和感觉的销售页面。

想象一下设置一次设置并再次将其用于其他页面会有多有趣?

那会很棒,对吧?

在下面的文章中,您将找到在 WordPress 中复制帖子或页面的方法。 您将了解如何手动操作、使用插件和不使用插件。

目录

  • 为什么要复制 WordPress 帖子或页面?
  • 如何复制 WordPress 帖子或页面?
  • 使用插件
    • Yoast重复帖子
    • 重复页面
    • 重复页面和帖子
  • 不使用插件
    • 通过functions.php代码
    • 手动复制和粘贴代码
  • 结论

为什么要复制 WordPress 帖子或页面?

在构建网站时,有时,您网站中的两个或更多页面的设置可能会变得相同。

虽然您可以复制和粘贴内容,但您需要手动调整页面的设置。 在这种情况下,复制帖子或页面是更自然和有效的选择。

通过这样做,您可以开始编辑帖子或页面并立即开始处理。 此外,处理具有多个页面的网站更容易。

现在的问题是,如何复制 WordPress 帖子或页面?

如何复制 WordPress 帖子或页面?

有三种方法可以复制 WordPress 帖子或页面。 由于它是 WordPress,因此有一些插件可以为您完成这项工作。 如果您不想使用插件并想手动执行,您也可以选择它。

使用插件

当您从您的网站复制页面和帖子时,插件可确保安全和轻松。 它们与 WordPress 主题轻松集成,为您提供扩展功能。 最好的事情是,您不需要使用这些插件编写一行代码。

Yoast重复帖子

对于大多数 WordPress 用户来说,Duplicate Post 可能是一个众所周知的名字。 这是因为它是复制页面和帖子的最受欢迎和首选选项。

您可以克隆所有内容,从内容到与页面或帖子相关的评论。 要使用此插件,请按照以下步骤操作。

  • 安装并激活插件。
  • 通过仪表板,转到帖子 > 全部或页面 > 全部。
  • 导航到要复制的原始帖子/页面,然后单击克隆。
  • 您可以使用批量操作一次克隆多个页面。
WordPress中的重复帖子
在 WordPress 中发布重复

重复页面

与传统插件相比,重复页面是另一个出色的插件,具有多个附加功能。 您可以创建页面、帖子和自定义帖子类型的副本。 创建副本后,您可以以任何所需的形式将其保存为草稿、公共、私人或待定。

请按照以下步骤使用该插件:

  • 安装并激活插件。
  • 调整配置设置以满足您的需求。
  • 转到页面 > 全部或帖子 > 全部,然后选择要复制的内容。
  • 点击复制这个,你就完成了。
WordPress中的页面重复

重复页面和帖子

这个插件是最轻量级和最快速的。 尽管它可能没有其他插件那样的高级功能,但它是最有效的插件之一。

要使用此插件复制您的帖子和页面,请按照以下步骤操作:

  • 安装并激活插件。
  • 转到帖子/全部或页面/全部。
  • 打开要克隆的页面或帖子。
  • 点击复制按钮。
重复的帖子和页面 WordPress
重复的帖子和页面

不使用插件

是的,插件很棒。 但这不是复制帖子和页面的唯一方法。 您可以选择自己手动完成,无需插件。 以下是您可以做到这一点的几种方法。

通过functions.php代码

您可以使用 functions.php 文件复制您的帖子和页面。 将几行代码写入现有的functions.php。 但是,请确保在更改 functions.php 文件之前彻底备份您的站点。

你需要对代码有一些基本的了解才能理解它是如何工作的。 现在,复制并粘贴以下代码:

 /* * 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 );

如果你想克隆一个页面而不是一个帖子,只需在代码的最后一行添加一个页面而不是一个帖子来做一个小的改动。

 add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);

手动复制和粘贴代码

对于某些人来说,此过程可能会很累,因为它需要您从要克隆的每个页面或帖子中复制并粘贴代码。

请按照以下步骤手动克隆帖子或页面:

  • 打开要克隆的页面或帖子。
  • 转到更多工具和选项菜单。
  • 选择代码编辑器。
  • 复制您要克隆的页面或帖子的代码。
  • 单击新帖子或新页面。
  • 在新页面中打开代码编辑器。
  • 粘贴代码。
  • 转到更多工具和选项菜单。
  • 选择可视化编辑器。
  • 出现的页面或帖子是旧页面的克隆。

结论

关于如何复制 WordPress 帖子或页面有很多选择。 您也可以选择使用插件或克隆您的页面并在没有它的情况下发布。 插件使您的工作更轻松。 同时,在没有插件的情况下进行操作可以让您完全控制事物。

因此,请使用最适合您需求的方法。 另外,请查看如何查找 WordPress 页面 ID 和帖子 ID,如果我们的文章对您有帮助,请告诉我们。