網站筆記:8 個實用的 WordPress 程式碼 Wayne, 2015-06-022025-07-17 本文轉錄自免費資源網路社群 純為筆記專用 1. 清空你的回收桶 為了安全起見,WordPress 會保存所有你刪除的文章、頁面和迴響;除非你進入回收桶功能,將它們永久刪除。回收桶的運作方式類似於 Windows 裡的資源回收桶。 WordPress 每隔三十天會自動清理你的回收桶,將以下程式碼加入你的 wp-config.php 檔案可以調整時間間隔(這個檔案位於你的 WordPress 根目錄): define ('EMPTY_TRASH_DAYS', 7); 如果你想進一步最佳化你的資料庫,避免將不要的項目儲存在資料庫裡,你可以透過以下的程式碼來停用回收桶功能,一樣是加入 wp-config.php 檔案: define ('EMPTY_TRASH_DAYS', 0); 來源 2. 減少文章版本 WordPress 文章版本功能(Revision)會在使用者每次儲存文章和頁面草稿時自動產生一個版本。這個功能對於部落客來說很重要,因為它可以隨時返回到早先的草稿,即便是你在編輯時發生任何錯誤。 不幸的是,WordPress 預設的文章版本並沒有總量限制,過多的草稿將會佔用你資料庫許多容量。這也意味著當長篇大論被儲存一百次時,也會佔用資料表一百行的空間。 為了解決這個問題,你可以將以下程式碼加入 wp-config.php 來減少文章版本的數量,給它一個合理的數量: define( 'WP_POST_REVISIONS', 3 ); 如果你希望完全停用文章版本功能,只需要將以下程式碼加入 wp-config.php 檔案: define( 'WP_POST_REVISIONS', false ); 來源 此外,WordPress 會每 60 秒自動儲存你的文章和頁面,透過以下程式碼可以修改自動儲存的時間間隔,一樣是把它加入你的 wp-config.php 檔案: define( 'AUTOSAVE_INTERVAL', 160 ); // 秒數 3. 搬移你的 WP-Content 目錄 wp-content 目錄包含你的佈景主題、外掛和上傳的圖片。某些外掛,例如快取外掛,也會使用 wp-content 目錄來儲存資料。 有鑑於此,wp-content 目錄時常成為黑客下手的目標,特別是插入惡意程式碼至你的佈景主題。你可以將 wp-content 目錄搬移到其他地方,使它更難以被找到。 如果你想要簡單地將 wp-content 目錄移動到其他路徑,你可以將以下程式碼加入你的 wp-config.php 檔案: * 注意:wp-content 目錄結尾沒有斜線。 define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/newlocation/wp-content' ); 如果你願意,你也可以使用 URL 來定義新的路徑: define( 'WP_CONTENT_URL', 'http://www.yourwebsite.com/newlocation/wp-content' ); WordPress 也允許你重新命名你的 wp-content 目錄: define ('WP_CONTENT_FOLDERNAME', 'newfoldername'); 重新命名你的 wp-content 目錄可以使 WordPress 網站更加安全,但很不幸的是並非 100% 可行,因為很多 WordPress 外掛開發者已將 “wp-content” 路徑寫死在外掛的程式碼裡。如果安全是首要目標,那還是值得一試的,但必須知道有些外掛的程式碼可能必須要手動更新(而且必須在每次更新外掛時重新做一次)。 來源 4. 將作者頁面鏈結重新導向「關於」頁面 作者彙整頁面鏈結會列出該作者曾經寫過的所有文章,並顯示於同一個頁面裡。有時候作者的「關於我」也會一併顯示於頁面頂部。 如果你運行的是單人部落格,那麼無須使用作者頁面來顯示和分類或彙整頁面相同的內容。更好的作法是直接把作者頁面鏈結連結到你的「關於」頁面。 你可以將以下程式碼加入佈景主題的 functions.php 檔案: add_filter( 'author_link', 'my_author_link' ); function my_author_link() { return home_url( 'about' ); } 來源 5. 當搜尋結果只有一篇文章時自動連到文章 每當執行搜尋時,WordPress 會列出所有與搜尋關鍵字相關的文章和頁面列表。使用者可以點選他們想閱讀的內容。 如果搜尋結果只有一個,那搜尋結果頁面是多餘的。乾脆直接把讀者重新導向至該篇文章。 你可以將以下程式碼加入佈景主題的 functions.php 檔案: add_action('template_redirect', 'redirect_single_post'); function redirect_single_post() { if (is_search()) { global $wp_query; if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) { wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); exit; } } } 來源 6. 將頁面從 WordPress 搜尋結果排除 典型的部落格可能有數百篇甚至是數千篇的文章,但只有少數幾個頁面。這些頁面往往是你網站的重要內容,例如關於頁面或是聯繫頁面;總會顯示於側邊欄或是網頁底部。因此,在搜尋結果裡可以排除頁面,因為這可能不是讀者想要搜尋的內容。 將頁面從搜尋結果移除也是對訪客隱藏私人頁面的方法。舉例來說,你的郵件訂閱頁面或你的電子書下載頁面。 將以下程式碼加入佈景主題的 functions.php 檔案,搜尋結果就只會顯示文章: function filter_search($query) { if ($query->is_search) { $query->set('post_type', 'post'); } return $query; } add_filter('pre_get_posts', 'filter_search'); 7. 從你的迴響表單移除網址欄位 我最近提到如何減少 WordPress 垃圾留言。這裡提供另外一個技巧,你可以用它來減少人工垃圾迴響:移除網址欄位。這麼做將可以大幅降低部落格收到品質低落的迴響。 要移除網址欄位,你必須做的是將以下程式碼加入佈景主題的 functions.php 檔案: function remove_comment_fields($fields) { unset($fields['url']); return $fields; } add_filter('comment_form_default_fields','remove_comment_fields'); 來源 8. 為迴響內容設定最少字數限制 另一個惱人的事情是有些迴響者會留下簡短、毫無意義的回覆。例如 “謝謝”、”好文”和”真棒!”之類的內容,這些內容對於討論並沒有幫助。如果你不希望從你的迴響表單移除網址欄位,你也許可以為迴響內容設定最少字數限制。 你可以透過將以下程式碼加入佈景主題的 functions.php 檔案來實現這項功能。請務必將 $minimalCommentLength 後方的數字改為你想自訂的最少字元數。(編按:不確定中文有沒有問題。) add_filter( 'preprocess_comment', 'minimal_comment_length' ); function minimal_comment_length( $commentdata ) { $minimalCommentLength = 20; if ( strlen( trim( $commentdata['comment_content'] ) ) < $minimalCommentLength ){ wp_die( '所有留言必須大於 ' . $minimalCommentLength . ' 個字元長度。' ); } return $commentdata; } 來源 我希望你會喜歡這 8 個實用的 WordPress 原始碼片段。 小知識