如何在 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 文件,将该代码复制并粘贴到该文件中,然后对其进行更新。 就这么简单,完成后,您将拥有原始页面的完全相同的副本。
推荐文章
2024 年最佳 WooCommerce 品牌插件
2024 年 4 月 30 日
如何修复WordPress中建立数据库连接的错误
2024 年 4 月 29 日
将 WordPress 网站直播到 Localhost:正确的移动方式!
2024 年 4 月 29 日