8 Code snippets hữu ích dành cho blog/ website WordPress.
Cách phổ biến nhất để bổ sung hoặc thay đổi các chức năng của một blog/ website WordPress là cài đặt plugin. Tuy nhiên, các chức năng này cũng có thể được thêm vào các tập tin giao diện (theme). Trong thực tế, phần lớn các WordPress themes đều có khả năng biến đổi WordPress Core theo một cách nào đó. Code snippets là những đoạn mã có thể được chèn trực tiếp vào các tập tin giao diện. Đôi khi chúng mang một chức năng đầy đủ. Trong một số trường hợp khác, chỉ đơn giản là thay đổi một chức năng đã có.
Tham khảo thêm:
- Tạo file functions.php để chèn code tùy biến WordPress
- Tùy chỉnh file wp-config.php giúp bảo mật WordPress
8 Code snippets hữu ích dành cho WordPress
Trong bài viết này, tôi sẽ giới thiệu đến các bạn 8 code snippets hữu ích giúp cải tiến WordPress. Tôi đã thử nghiệm thành công tất cả các code snippets trên giao diện mặc định Twenty Fourteen. Tuy nhiên, một số chức năng có thể không hoạt động được nếu theme của bạn đã bị sửa đổi quá nhiều (đặc biệt nếu nó là một framework).
1. Xóa trash
WordPress sẽ giữ một bản sao của tất cả các bài viết, các trang và bình luận mà bạn đã xóa. Trừ khi bạn vào thư mục Trash (thùng rác) và xóa chúng vĩnh viễn. Trash hoạt động tương tự như Recycle Bin của hệ điều hành Windows.
Cứ 30 ngày một lần, WordPress sẽ tự động xóa tất cả mọi thứ khỏi thùng rác. Tuy nhiên, bạn có thể làm giảm thời gian lưu file trong thùng rác bằng cách thêm dòng mã sau đây vào tập tin wp-config.php:
define ('EMPTY_TRASH_DAYS', 7);
Thay “7” bằng số ngày mà bạn muốn lưu trữ các dữ liệu đã xóa.
Nếu bạn muốn tối ưu hóa cơ sở dữ liệu hơn nữa, hạn chế lưu các thông tin không cần thiết, bạn có thể vô hiệu hóa hệ thống “thùng rác” hoàn toàn bằng cách thêm dòng mã sau vào tập tin wp-config.php:
define ('EMPTY_TRASH_DAYS', 0);
2. Giảm post revisions
WordPress revision system tự động lưu các bản thảo bài viết và trang của bạn sau những khoảng thời gian nhất định. Tính năng này rất quan trọng với các blogger vì nó cho phép họ xem lại dự thảo trước đó và tiếp tục công việc còn dang dở trong trường hợp kết nối internet bị mất (mất điện, tắt trình duyệt đột ngột…).
Thật không may, bản thảo chiếm rất nhiều không gian trong cơ sở dữ liệu của bạn. Nguy hiểm hơn nữa, mặc định của WordPress không giới hạn số lượng các dự thảo được lưu. Điều này có nghĩa là một bài viết được lưu một trăm lần sẽ chiếm một trăm hàng trong bảng cơ sở dữ liệu của bạn.
Để giải quyết vấn đề này, bạn có thể giảm số lượng bản thảo được lưu xuống mức hợp lý hơn bằng cách thêm đoạn mã sau vào tập tin wp-config.php:
define ('WP_POST_REVISIONS', 3);
Thay “3” bằng số lượng bản thảo mà bạn muốn lưu trữ.
Nếu bạn muốn vô hiệu hóa hoàn toàn chức năng này, hãy thêm đoạn mã sau vào tập tin wp-config.php:
define ('WP_POST_REVISIONS', false);
WordPress tự động lưu các bài viết và trang, cứ mỗi 60 giây một lần. Khoảng thời gian đó có thể được sửa đổi bằng cách thêm đoạn mã sau vào tập tin wp-config.php:
define ('AUTOSAVE_INTERVAL', 160);
Trong đó, “160” là thời gian giữa 2 lần tự động lưu, tính theo giây. Bạn hoàn toàn có thể thay đổi thông số này theo nhu cầu.
3. Di chuyển thư mục wp-content
Thư mục wp-content chứa themes, plugins và các file bạn đã upload. Một số plugin, chẳng hạn như plugin bộ nhớ đệm (cache), cũng sử dụng thư mục wp-content để lưu trữ dữ liệu. Do đó, thư mục wp-content thường xuyên là mục tiêu cho các tin tặc. Đặc biệt là nguy cơ bị phần mềm độc hại chèn vào các tập tin giao diện. Bạn có thể làm cho thư mục wp-content khó bị người khác tìm thấy bằng cách di chuyển nó đến một khu vực khác trên hosting.
Để di chuyển thư mục wp-content tới một vị trí khác, bạn có thể thêm code snippets sau vào tập tin wp-config.php:
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/newlocation/wp-content' );
Nếu thích, bạn có thể xác định vị trí mới bằng cách sử dụng URL:
define ('WP_CONTENT_URL', 'http://www.yourwebsite.com/newlocation/wp-content');
WordPress cũng cho phép bạn đổi tên thư mục wp-content bằng cách sử dụng code snippets:
define ('WP_CONTENT_FOLDERNAME', 'newfoldername');
Lưu ý: thay “newlocation”, “http://www.yourwebsite.com/newlocation/” và “newfoldername” bằng dữ liệu của bạn cho phù hợp.
Thay đổi thư mục wp-content có thể giúp cho blog/ website WordPress an toàn hơn. Tuy nhiên, một điều đáng tiếc là không phải lúc nào bạn cũng có thể thực hiện được, vì nhiều nhà phát triển sử dụng mã “wp-content” trong code plugin của họ. Nó vẫn có giá trị thực tiễn nếu bảo mật là ưu tiên hàng đầu của bạn. Mặc dù, việc này có thể yêu cầu phải chỉnh sửa mã của nhiều plugin mà bạn đang sử dụng.
4. Chuyển hướng trang Author Archive về trang Giới thiệu
Nếu bạn đang vận hành blog/ website với chỉ một tác giả duy nhất, trang Author Archives (trang lưu trữ bài viết theo tác giả) là không cần thiết vì nó tương tự như trang lưu trữ hàng tháng hay lưu trữ theo chuyên mục. Một giải pháp tốt hơn là chuyển hướng trang Author Archives của bạn trực tiếp đến trang About (giới thiệu).
Bạn có thể làm điều này bằng cách thêm code snippets sau vào file functions.php của theme mà bạn đang sử dụng:
add_filter( 'author_link', 'my_author_link' ); function my_author_link() { return home_url( 'about' ); }
5. Chuyển hướng đến bài viết nếu kết quả tìm kiếm chỉ có một bài viết
Bất cứ khi nào một hoạt động tìm kiếm được thực hiện, WordPress sẽ hiển thị một danh sách của tất cả các bài viết và các trang có liên quan đến từ khoá. Sau đó, người dùng có thể click vào bài viết mà họ muốn đọc.
Nếu chỉ có duy nhất một kết quả thì trang kết quả tìm kiếm là không cần thiết. Sẽ tốt hơn nếu bạn chuyển hướng khách truy cập trực tiếp đến kết quả tìm kiếm đó. Bạn có thể làm điều này bằng cách thêm code snippets sau đây vào tập tin functions.php của theme mà bạn đang dùng.
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. Loại bỏ các page khỏi kết quả tìm kiếm
Một blog/ website thường có hàng trăm hoặc hàng ngàn bài viết, nhưng chỉ cần một vài trang (page). Những trang này thường là những trang quan trọng của blog/ website như Giới thiệu, Liên hệ và luôn được hiển thị rõ ràng trong menu hoặc sidebar. Do đó, hiển thị các trang trong kết quả tìm kiếm là việc hoàn toàn không cần thiết.
Loại bỏ các page khỏi kết quả tìm kiếm cũng là một cách hiệu quả để ẩn những trang riêng tư khỏi khách truy cập. Ví dụ: trang đăng ký bài viết qua email hoặc trang download ebook.
Thêm đoạn code snippets dưới đây vào file functions.php của theme bạn đang dùng sẽ đảm bảo chỉ có bài viết được hiển thị trong kết quả tìm kiếm:
function filter_search($query) { if ($query->is_search) { $query->set('post_type', 'post'); } return $query; } add_filter('pre_get_posts', 'filter_search');
7. Loại bỏ mục URL trong form bình luận
Đây là một thủ thuật bạn có thể sử dụng để làm giảm lượng bình luận spam: loại bỏ mục URL trong khung bình luận. Việc làm này sẽ giúp giảm số lượng bình luận chất lượng kém mà blog/ website của bạn phải nhận.
Để loại bỏ mục URL trong form bình luận, tất cả những gì bạn phải làm là thêm code snippets sau đây vào tập tin functions.php của theme mà bạn đang dùng:
function remove_comment_fields($fields) { unset($fields['url']); return $fields; } add_filter('comment_form_default_fields','remove_comment_fields');
8. Yêu cầu độ dài tối thiểu của bình luận
Một điều khó chịu là nhiều bình luận quá ngắn và gần như vô nghĩa, kiểu như: “Cảm ơn”, “Bài viết rất hay”, “Tuyệt vời”… Nếu không muốn loại bỏ mục URL khỏi form bình luận, bạn có thể yêu cầu độ dài tối thiểu cho các bình luận để không phải nhận những bình luận ngắn cũn như trên.
Hãy thêm đoạn code snippets sau vào file functions.php. Bạn có thể thay đổi “20” bằng số lượng từ tối thiểu trong bình luận mà bạn mong muốn.
add_filter( 'preprocess_comment', 'minimal_comment_length' ); function minimal_comment_length( $commentdata ) { $minimalCommentLength = 20; if ( strlen( trim( $commentdata['comment_content'] ) ) < $minimalCommentLength ){ wp_die( 'All comments must be at least ' . $minimalCommentLength . ' characters long.' ); } return $commentdata; }
Các dòng chữ “All comments must be at least” và “characters long” cũng có thể được Việt hóa hoặc tùy chỉnh theo ý thích của bạn.
Bạn biết những code snippets khác hữu ích hơn giúp nâng cao trải nghiệm với WordPress? Hãy chia sẻ nó với chúng tôi bằng cách sử dụng khung bình luận bên dưới.
Nếu bạn thích bài viết này, hãy subscribe blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất qua email nhé. Cảm ơn rất nhiều. :)
Quá hay luôn, tuy những thủ thuật đơn giản nhưng giúp khá nhiều trong việc onpage
Bác Hiếu có cách nào khắc phục website bị chèn 1 link hình ảnh vào trên website không?
web của mình tự nhiên bị chèn 1 link lạ
và mình đang tính mua Sucuri Security theo bạn thằng này dùng tốt không và có thể khắc phục đc không bác
Vui lòng inbox link web của bạn qua Skype hoặc Gmail mình tư vấn cụ thể cho nhé. :P
mình gửi cho bạn rồi đó có gì tư vấn giúp mình nhé
Bài viết hay thế này mà không thấy ai bình luận ta. vOTE 5 sao cho a nè :3
Cuối cùng cũng có người hiểu. Cảm thấy đắng lòng. :(
cái số 6 loại trang ra kết quả tìm kiếm. yoast seo nó có chức năng nofollow với noiindex rồi có cần thêm code vào nữa ko a
Bạn hiểu sai nghĩa của nó rồi. Cái này mặc định của wp là hiển thị cả page trên trang tìm kiếm của blog. Còn code này sẽ loại bỏ nó đi
e đã chèn code chuẩn từng kí tự nhưng bài viết vẫn lên bản sao lưu. mấy chức năng kia e chưa kiểm chứng nhưng hình như cũng không có tác dụng a ạ :(
http://sv1.upsieutoc.com/2017/04/07/111.png
File wp-config.php mặc định nó có thứ tự như thế này chứ không phải như của bạn đâu nhé. Lộn tùng phèo cả lên rồi:
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
E thêm thế này nó vẫn lưu bản thảo a ơi :(
/* That’s all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined(‘ABSPATH’) )
define(‘ABSPATH’, dirname(__FILE__) . ‘/’);
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . ‘wp-settings.php’);
define (‘EMPTY_TRASH_DAYS’, 0);
define (‘WP_POST_REVISIONS’, false);
define (‘AUTOSAVE_INTERVAL’, 160);
Bảo thêm vào bên trên dòng /* That’s all, stop editing! Happy blogging. */ lại chạy đi thêm vào bên dưới. Đến bó tay. :P
há há. được rồi được rồi. nhầm nhọt sang trồng trọt :P thank a nhá :D :D