新聞中心

薩爾圖網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
有時,您會遇到一種情況,即您想要創(chuàng)建與網(wǎng)站中現(xiàn)有文章或頁面相同(或幾乎相同)的新文章或頁面。
如果文章或頁面很長或包含大量媒體,重新添加所有內(nèi)容的過程似乎非常費力。此外,如果您有很多彼此非常相似的文章,那么必須再次手動輸入所有文本或添加所有媒體文件來創(chuàng)建新文章或頁面會非常煩人。
一種選擇可能是在一個瀏覽器窗口或選項卡中打開現(xiàn)有文章(為方便起見,我們將使用“文章”來指代文章和頁面),然后在另一個窗口中創(chuàng)建新文章并在其中兩個,復(fù)制和粘貼您的內(nèi)容。畢竟,最近(古騰堡)版本的wordpress確實使這變得非常容易,您可以使用“復(fù)制所有內(nèi)容”選項。
但是如果你必須一次又一次地這樣做,就有犯錯的風(fēng)險。如果您不小心編輯了原始文章,覆蓋了您已發(fā)布到網(wǎng)站的內(nèi)容,該怎么辦?或者,如果您要復(fù)制大量文章,而忘記創(chuàng)建了哪些文章?
這可能是一個潛在的頭痛。
- 如何在WordPress中復(fù)制頁面或文章(半自動)
- 如何使用插件在WordPress中復(fù)制頁面或文章
- 如何批量復(fù)制文章或頁面
- 編寫自己的文章復(fù)制插件
幸運的是,有一種更簡單的方法。有可用的免費插件可以讓您復(fù)制您的文章和頁面,因此您可以編輯和調(diào)整它們以創(chuàng)建與您現(xiàn)有內(nèi)容幾乎相同的新文章。
如何在WordPress中復(fù)制頁面或文章:
您可以使用以下插件之一在WordPress中輕松復(fù)制頁面、文章和自定義文章類型:
- Duplicate Posts: 它在 WordPress 管理中為每個文章/頁面添加一個“克隆”鏈接。
- Duplicate Page plugin: 它在每個文章、頁面或自定義文章類型下添加一個“復(fù)制此”鏈接。
- WP Bulk Post Duplicator:此插件允許您批量復(fù)制文章/頁面。
如果您使用WooCommerce并需要復(fù)制您的產(chǎn)品,請將鼠標(biāo)懸停在任何產(chǎn)品上:您會在該產(chǎn)品下看到一個復(fù)制鏈接。
支持在這篇文章中,我們將向您展示一些可以用來執(zhí)行此操作的方法,并重點介紹一些適合該任務(wù)的最佳插件。
但首先,我們將向您展示如何在沒有插件的情況下以半手動方式在WordPress中復(fù)制頁面或文章。這涉及復(fù)制和粘貼,但WordPress使這件事變得如此容易,如果您只有一個文章要復(fù)制,它可能會比安裝插件并這樣做更快。
如何在WordPress中復(fù)制頁面或文章(半自動)
如果您只有一個文章要復(fù)制,這種方法會更快,因為它可以節(jié)省您安裝插件的時間。如果你有一堆文章要復(fù)制,我強烈建議你跳過這一節(jié):你會發(fā)現(xiàn)使用插件更快,更不用說更準(zhǔn)確了。
所以對于那些只需要復(fù)制一篇文章或頁面的人來說,這里是如何做到的。
首先打開您現(xiàn)有的文章或頁面。通過單擊文章上的區(qū)塊外部或選擇屏幕右側(cè)編輯窗格中的“文檔”選項卡,確保您沒有選擇單個區(qū)塊。如果您選擇了一個區(qū)塊,WordPress只會復(fù)制該區(qū)塊的內(nèi)容,而不是整個文檔。
現(xiàn)在單擊編輯屏幕右上角的省略號(三個點排列在一起)。
WordPress中的復(fù)制所有內(nèi)容選項
將出現(xiàn)一個菜單。在此菜單的底部,您將看到“復(fù)制所有內(nèi)容”選項。單擊它,您將收到一條消息,告訴您您的內(nèi)容已被復(fù)制。
現(xiàn)在創(chuàng)建您的新文章。為您的文章命名,然后單擊編輯屏幕上為您創(chuàng)建的第一個空白區(qū)塊。使用鍵盤上的快捷鍵進行粘貼(PC 上為 Ctrl + V,Mac 上為 Cmd + V,或右鍵單擊并在出現(xiàn)的快捷菜單中選擇粘貼。
您舊文章的內(nèi)容現(xiàn)在將出現(xiàn)在您的新文章中。
現(xiàn)在您可以編輯該文章并使其與舊文章不同。這是我強烈建議做的事情——在您的網(wǎng)站上發(fā)布彼此完全重復(fù)的博客文章并沒有多大意義。它不僅會使訪問者感到困惑,而且對SEO也不利。
但是,如果您想為文章創(chuàng)建多個副本怎么辦?繼續(xù)閱讀……
如何使用插件在WordPress中復(fù)制頁面或文章
到目前為止,復(fù)制文章最快、最簡單、最可靠的方法是使用插件。這將節(jié)省您的時間,避免任何人為錯誤,并允許您復(fù)制您喜歡的任何文章類型。事實上,根據(jù)我們的經(jīng)驗,復(fù)制文章實際上更常見于自定義文章類型。有兩篇幾乎完全相同的博客文章是不尋常的,但例如,對于商店中的產(chǎn)品來說,這是很常見的。
所以這里有一些插件可以簡化復(fù)制文章的過程,以及如何使用它們的指南。
WooCommerce
您可能想知道為什么我在這里包含WooCommerce,因為它是一個電子商務(wù)插件,而不是一個復(fù)制后插件。
但值得一提的是,WooCommerce允許您在不安裝額外插件的情況下復(fù)制產(chǎn)品。因此,在您開始搜索后復(fù)制插件并使用它來復(fù)制您的產(chǎn)品之前,只需使用WooCommerce捆綁的功能即可。
如果您轉(zhuǎn)到WooCommerce的主產(chǎn)品屏幕并將鼠標(biāo)懸停在任何產(chǎn)品上,您將在該文章下看到一個重復(fù)鏈接。
WooCommerce重復(fù)產(chǎn)品選項
只需單擊該重復(fù)鏈接,就會創(chuàng)建一個新產(chǎn)品。您將被直接帶到新產(chǎn)品的編輯屏幕,以便您可以對其進行更改然后發(fā)布。
值得注意的是,新產(chǎn)品的slug將是舊產(chǎn)品的slug加上-copy,所以即使你改變了新產(chǎn)品的標(biāo)題,你也需要編輯slug。
編輯重復(fù)的產(chǎn)品
Duplicate Post插件
Duplicate Post是最受歡迎的文章復(fù)制插件,下載量超過300萬次。
激活它后,它會在WordPress管理員的主文章屏幕中為每個文章添加一個克隆鏈接。
Duplicate Post插件
單擊您要復(fù)制的文章下方的克隆鏈接,將為您創(chuàng)建一個具有相同內(nèi)容和標(biāo)題以及草稿狀態(tài)的新文章。
然后你可以編輯那個新文章并給它一個新的標(biāo)題(我強烈建議你這樣做 – WordPress確實允許你復(fù)制標(biāo)題,但它對用戶體驗不是很好)。
它還為頁面和自定義文章類型添加了相同的克隆鏈接(如果您在設(shè)置中啟用它們)。
Duplicate Page
Duplicate Page插件已經(jīng)有超過90萬下載量,并且是重復(fù)的文章替代上述插件。
安裝插件后,轉(zhuǎn)到“文章”或“頁面”管理屏幕,或轉(zhuǎn)到自定義文章類型的管理屏幕,您會在每個文章下找到“Duplicate This”鏈接。這是我的自定義文章類型:
Duplicate Page插件
單擊該鏈接,您將獲得一個新文章(或頁面,或自定義文章類型的文章),其內(nèi)容和標(biāo)題與原始文章相同,狀態(tài)為草稿。在發(fā)布之前,您需要對其進行編輯并修改其slug。
注意:如果您使用WooCommerce,則此插件中的Duplicate This鏈接將不會顯示在您的產(chǎn)品屏幕上。WooCommerce使用我在本文前面描述的自己的Duplicate鏈接覆蓋它。
如何批量復(fù)制文章或頁面
上面提到的插件可以讓您一次復(fù)制一個文章。但是,如果您需要復(fù)制站點中的所有文章或自定義文章類型的所有文章,該怎么辦?或者也許是你今年發(fā)表的所有文章?
WP Bulk Post Duplicator插件可以讓你做到這一點。它沒有添加鏈接來復(fù)制單個文章,而是為您提供了一個設(shè)置屏幕,讓您可以根據(jù)您設(shè)置的條件批量復(fù)制文章。
注意:在撰寫本文時,此插件已有四年未更新,因此我們建議在實際站點上使用之前將其安裝在開發(fā)站點上并對其進行測試。
安裝插件后,轉(zhuǎn)到“設(shè)置”>“WP Bulk Post Duplicator”以查看插件的設(shè)置屏幕。
首先選擇要復(fù)制的文章類型以及文章狀態(tài)。因此,如果您選擇已發(fā)布狀態(tài)的post,該插件將復(fù)制您所有已發(fā)布的文章。相反,如果您選擇posts和draft,它只會復(fù)制您的所有草稿文章。
批量復(fù)制設(shè)置 – 文章類型和狀態(tài)
向下滾動并選擇要復(fù)制的文章的年份(這是可選的)。然后,您還可以指定創(chuàng)建的新文章的狀態(tài)。如果您在此處不選擇任何內(nèi)容,它將默認為Draft。
批量復(fù)制設(shè)置 – 年份和發(fā)布狀態(tài)
單擊復(fù)制按鈕,插件將復(fù)制您的文章。在這里你可以看到我所有的頁面都被復(fù)制了,有12個現(xiàn)有的已發(fā)布頁面和12個新的草稿頁面。然后,我需要瀏覽所有頁面并在發(fā)布它們之前對其進行編輯。這顯然需要時間,但批量復(fù)制使速度更快,
編寫您自己的文章復(fù)制插件
如果您不想使用第三方插件來復(fù)制文章而寧愿自己編寫代碼怎么辦?
沒問題。只需按照以下步驟創(chuàng)建您自己的文章復(fù)制插件。
1. 設(shè)置插件
從設(shè)置插件開始。將一個新文件添加到您的wp-content/plugins文件夾并將此注釋掉的文本添加到其中(您可以編輯您的文件以反映您的作者姓名):
2. 創(chuàng)建函數(shù)
現(xiàn)在添加復(fù)制文章的函數(shù)并將其掛接到動作鉤子上。這個動作鉤子還不存在:別擔(dān)心,我們很快就會創(chuàng)建它。
function wbolt_duplicate_post(){ } add_action( 'admin_action_wbolt_duplicate_post', 'wbolt_duplicate_post' );現(xiàn)在讓我們創(chuàng)建該動作,它將作為將重復(fù)鏈接添加到文章和頁面屏幕的功能的一部分。
function wbolt_duplicate_post_link( $actions, $post ) { if ( current_user_can( 'edit_posts') ) { $actions['duplicate'] = 'Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'wbolt_duplicate_post_link', 10, 2 ); add_filter( 'page_row_actions', 'wbolt_duplicate_post_link', 10, 2);這將添加用于復(fù)制的鏈接,但它實際上還不會復(fù)制任何內(nèi)容。
3. 添加復(fù)制函數(shù)
讓我們添加復(fù)制代碼。所有其余的代碼都在您的空wb_duplicate_post() 函數(shù)中。
首先,讓我們檢查是否選擇了有效的文章并檢查隨機數(shù),以確保安全:
global $wpdb; // Die if post not selected if (! ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'wbolt_duplicate_post' == $_REQUEST['action'] ) ) ) { wp_die( __( 'Please select a post to duplicate.', 'wbolt' ) ); } // Verify nonce if ( ! isset( $_GET['duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) ) { return; }現(xiàn)在我們需要獲取要復(fù)制的文章的ID及其數(shù)據(jù):
// Get id of post to be duplicated and data from it $post_id = ( isset( $_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) ); $post = get_post( $post_id );我們可以使用它來定義一個參數(shù)數(shù)組并使用wp_insert_post()將一個新文章插入數(shù)據(jù)庫,但首先,添加一個條件語句來檢查文章是否為空:
if ( isset( $post ) && $post != null ) { }在該條件語句中添加以下內(nèi)容:
// args for new post $args = array( 'comment_status' => $post->comment_status, 'ping_status' => $post->ping_status, 'post_author' => $post->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 new post $new_post_id = wp_insert_post( $args );現(xiàn)在我們將從舊文章中獲取分類法并將它們添加到新文章中:
// add taxonomy terms to the new post // identify taxonomies that apply to the post type $taxonomies = get_object_taxonomies( $post->post_type ); // add the taxonomy terms to the new post 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 ); }然后我們將使用SQL查詢添加任何額外的文章元數(shù)據(jù):
// use SQL queries to duplicate postmeta $post_metas = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id"); if ( count( $post_metas )!=0 ) { $sql_query = "INSERT INTO $wpdb->postmeta ( post_id, meta_key, meta_value ) "; foreach ( $post_metas as $post_meta ) { $meta_key = $post_metas->meta_key; if( $meta_key == '_wp_old_slug' ) continue; $meta_value = addslashes( $post_metas->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 ); }最后,我們檢查文章是什么文章類型并重定向到相關(guān)屏幕。
// redirect to admin screen depending on post type $posttype = get_post_type( $post_id ); wp_redirect( admin_url( 'edit.php?post_type=' . $posttype ) );現(xiàn)在,在
if ( isset( $post ) && $post != null )檢查的大括號外,我們添加一條錯誤消息:else { // display an error message if the post id of the post to be duplicated can't be found wp_die( __( 'Post cannot be found. Please select a post to duplicate.', 'wbolt' ) ); }就是這樣!
完整插件
這是插件的完整代碼:
$post->comment_status, 'ping_status' => $post->ping_status, 'post_author' => $post->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 new post $new_post_id = wp_insert_post( $args ); // add taxonomy terms to the new post // identify taxonomies that apply to the post type $taxonomies = get_object_taxonomies( $post->post_type ); // add the taxonomy terms to the new post 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 ); } // use SQL queries to duplicate postmeta $post_metas = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id"); if ( count( $post_metas )!=0 ) { $sql_query = "INSERT INTO $wpdb->postmeta ( post_id, meta_key, meta_value ) "; foreach ( $post_metas as $post_meta ) { $meta_key = $post_metas->meta_key; if( $meta_key == '_wp_old_slug' ) continue; $meta_value = addslashes( $post_metas->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 ); } // redirect to admin screen depending on post type $posttype = get_post_type( $post_id ); wp_redirect( admin_url( 'edit.php?post_type=' . $posttype ) ); } else { // display an error message if the post id of the post to be duplicated can't be found wp_die( __( 'Post cannot be found. Please select a post to duplicate.', 'wbolt' ) ); } } add_action( 'admin_action_wbolt_duplicate_post', 'wbolt_duplicate_post' ); // Add the duplicate link to action list for post_row_actions function wbolt_duplicate_post_link( $actions, $post ) { if ( current_user_can( 'edit_posts') ) { $actions['duplicate'] = 'Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'wbolt_duplicate_post_link', 10, 2 ); add_filter( 'page_row_actions', 'wbolt_duplicate_post_link', 10, 2);恭喜!您現(xiàn)在擁有自己的插件來復(fù)制WordPress網(wǎng)站中的文章和頁面。
小結(jié)
使用插件復(fù)制文章和頁面比手動復(fù)制更快,并且可以消除復(fù)制內(nèi)容時出錯的風(fēng)險。
如果您只有一篇文章要復(fù)制,您可能會發(fā)現(xiàn)使用WordPress中內(nèi)置的“復(fù)制所有內(nèi)容”功能會更快,但對于不止一篇文章,使用插件是值得的。如果您使用上面列出的插件之一,或者自己編寫代碼,您將能夠根據(jù)需要復(fù)制任意數(shù)量的文章、頁面或自定義文章類型。
如果你這樣做,你會節(jié)省時間(更重要的是),當(dāng)你應(yīng)該編輯重復(fù)的文章時,你將消除意外編輯原始文章的風(fēng)險。
名稱欄目:如何在WordPress中復(fù)制頁面或文章
標(biāo)題鏈接:http://fisionsoft.com.cn/article/cdoopic.html


咨詢
建站咨詢
