如何在 2023 年没有插件的情况下在 WordPress 中复制页面

如果您使用 WordPress 创建和管理您的网站,在某些时候,您可能想要复制一个页面。 您可能会认为您可以简单地将所有内容复制并粘贴到新页面上。

这仅在一定程度上有效,因为您的许多格式,例如功能、图像和 SEO,都将丢失并且需要重做。 有关此主题的更多信息,您可以查看这篇文章 在 WordPress 中复制页面.

此外,如果您想修改页面并改进它,如果您开始编辑现有页面,而不是制作副本,那么您没有任何比较点。 无论您需要在 WordPress 中复制页面的原因是什么,都有几种方法可以解决。

托管 WordPress 托管为运行 WordPress 网站提供了强大而高效的环境,无需插件即可复制页面是一项简单的手动任务。

这两个元素都是有效管理和维护 WordPress 网站的更广泛策略的一部分,托管托管提供了一个安全网,可以补充页面复制等手动​​站点管理任务。

复制没有插件的 WordPress 页面

如果您不想使用插件来复制 WordPress 页面,可以尝试更改一些 .

一点编码

如果您不是编码大师(我们中很少有人是),请不要担心。 您可以通过一些编码来复制 WordPress 页面,这并不难。 我们将在此处为您提供代码,因此您只需复制并粘贴即可。 让我们解释一下如何做到这一点。

访问 Functions.php 文件

要复制没有插件的页面,您需要通过编码方法访问“functions.php”文件。 您可以使用两种主要方法来访问 functions.php 文件。

第一种方法是使用FTP客户端,所以你首先需要安装 则fTP 客户。 启动 FTP 客户端,单击“连接”,并提供您的用户名和密码以连接到 FTP 主机服务器。 然后,您可以通过转到“WordPress Root”、“WP 内容”、“主题”、“当前主题”来访问相应的文件,最后您将访问 functions.php。 然后,您可以下载文件,根据需要对其进行编辑,然后将其上传回适当的位置。

第二种方法访问functions.php 文件。 您可以通过以管理员身份登录WordPress来更改代码,然后转到侧边栏中的外观编辑器,选择您要编辑的主题,然后选择主题功能(functions.php),它位于“主题文件”在“模板部分”。 您现在可以对代码进行更改,完成后,只需点击“更新”按钮。

现在您知道如何访问 functions.php 文件,这样您就可以在没有插件的情况下更改代码; 主要目标是复制页面。 下一步是输入适当的代码,然后复制页面。 如果您对编码不太了解,请不要担心,因为我们已经包含了您可以复制和粘贴的必要代码。

/* * 后期复制函数。  Dups 显示为草稿。  用户被重定向到编辑屏幕 */ function rd_duplicate_post_as_draft(){ global $wpdb; 如果 (!  ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) { wp_die('没有提供重复的帖子!'); } /* * Nonce 验证 */ if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) ) return; /* * 获取原始帖子 ID */ $post_id = (isset($_GET['post']) ?  absint( $_GET['post'] ) : absint( $_POST['post'] ) ); /* * 和所有原始帖子数据然后 */ $post = get_post( $post_id ); /* * 如果您不希望当前用户成为新的帖子作者,* 然后将下几行更改为: $new_post_author = $post->post_author; */ $current_user = wp_get_current_user(); $new_post_author = $current_user->ID; /* * 如果帖子数据存在,则创建帖子副本 */ if (isset( $post ) && $post != null) { /* * 新帖子数据数组 */ $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' => '草稿', 'post_title' => $post->post_title, 'post_type ' => $post->post_type, 'to_ping' => $post->to_ping, 'menu_order' => $post->menu_order ); /* * 通过 wp_insert_post() 函数插入帖子 */ $new_post_id = wp_insert_post( $args ); /* * 获取所有当前的帖子术语并将它们设置为新的帖子草稿 */ $taxonomies = get_object_taxonomies($post->post_type); // 返回帖子类型的分类名称数组,例如 array("category", "post_tag"); foreach ($taxonomy 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); } /* * 在两个 SQL 查询中复制所有 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)!=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; 如果($meta_key == '_wp_old_slug')继续; $meta_value = addlashes($meta_info->meta_value); $sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'"; } $sql_query.= implode("UNION ALL", $sql_query_sel); $wpdb->查询($sql_query); } /* * 最后,重定向到新草稿的编辑帖子屏幕 */ wp_redirect( admin_url( 'post.php?action=edit&post=' .  $new_post_id ) ); 出口; } else { wp_die('帖子创建失败,找不到原始帖子:' .  $post_id); } } add_action('admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft'); /* * 将重复链接添加到 post_row_actions 的操作列表 */ function rd_duplicate_post_link( $actions, $post ) { if (current_user_can('edit_posts')) { $actions['duplicate'] = '  wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&post=' .  $post->ID, basename(__FILE__), 'duplicate_nonce' ) 。 

如果您只想复制帖子而不是页面,请将最后一行替换为:

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

结论

您现在知道如何在没有插件的情况下复制 WordPress 页面。 如您所见,只涉及两个步骤。 首先,访问functions.php 文件,将该代码复制并粘贴到该文件中,然后对其进行更新。 就这么简单,完成后,您将拥有原始页面的完全相同的副本。

    0 条评论

    没有评论。