Trở về

10 đoạn code tuỳ biến theme WordPress

bởi Vi Nè

Một trang WordPress có thể nói là rất dễ thay đổi giao diện, bạn chỉ việc chọn một theme, kích hoạt và tách một cái bạn đã có một giao diện mới cho website của bạn.

Có một hạn chế ở đây là không phải theme nào cũng có cấu hình giống nhau, hoặc ít nhất là cách hiển thị. Bạn có thể tuỳ chỉnh bằng việc cài đặt plugin, nhưng đôi khi plugin cũng không hoạt động đúng ý bạn hoặc việc cài đặt quá nhiều plugin khiến bạn thấy rối trong việc quản lý chúng. Tại sao chúng ta không sử dụng những đoạn code sau đây để tuỳ biến theme đơn giản hơn nhỉ, chỉ việc đặt code vào file function.php bên trong thư mục chính của theme.

1. Thay đổi độ dài của đoạn trích dẫn bài viết (Excerpt Length)

Excerpt là đoạn trích dẫn ngắn của mỗi bài viết trong danh sách bài viết khi được hiển thị ra bên ngoài. Mặc định độ dài của Excerpt là 55 chữ, bạn có thể thay đổi dựa vào bộ lọc filter excerpt_length:

function my_excerpt_length( $length ) {  
   return 30;  
}  
add_filter( 'excerpt_length', 'my_excerpt_length', 20 );

Với đoạn code trên, chúng ta đã thay đổi độ dài của excerpt từ 55 xuống còn 30 chữ cho mỗi bài viết.

2. Giảm Post Revisions

Post Revisions là bản xem lại của một bài viết hoặc trang trong WordPress mỗi khi bạn thay đổi. Có vấn đề phát sinh ở đây là số bản xem lại này sẽ gia tăng vô hạn trong database của bạn theo thời gian.
Để giải quyết vấn đề, chúng ta giới hạn số bản xem lại được lưu trong database.
Sau đây là đoạn code giới hạn số bản xem lại là 5, bạn có thể đặt nhiều hơn hoặc ít hơn dựa vào việc thay đổi con số mà thôi.

define('WP_POST_REVISIONS', 5);

Thêm vào đó bạn cũng có thể bỏ hẳn tính năng Revisions bằng đoặc code sau

define('WP_POST_REVISIONS', false);
3. Tự động đặt ảnh đại diện trong một bài viết

Khi viết một bài viết bạn phải đặt ảnh đại diện của một bài viết bằng cách thủ công, để tiết kiệm thời gian và tránh trường hợp quên đặt ảnh chúng ta có thể sử dụng code dùng ảnh đầu tiên trong bài viết để làm ảnh đại diện của bài viết luôn.

function autoset_featured() {  
    global $post;  
    $already_has_thumb = has_post_thumbnail($post->ID);  
    if (!$already_has_thumb)  {  
    $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );  
        if ($attached_image) {  
            foreach ($attached_image as $attachment_id => $attachment) {  
                set_post_thumbnail($post->ID, $attachment_id);  
            }  
        }  
     }  
}  
add_action('the_post', 'autoset_featured');  
add_action('save_post', 'autoset_featured');  
add_action('draft_to_publish', 'autoset_featured');  
add_action('new_to_publish', 'autoset_featured');  
add_action('pending_to_publish', 'autoset_featured');  
add_action('future_to_publish', 'autoset_featured');
4. Giới hạn độ dài tối thiểu của bình luận (Comment Length)

Bạn có thể không thích những bình luận ngắn và cụt lủn như “Hay”, “Viết tốt”, “Chém gió”, … Bạn có thể tăng độ dài tối thiểu của bình luận lên.

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;  
}  
add_filter( 'preprocess_comment', 'minimal_comment_length' );

Đội dài của bình luận phía trên được tính bằng ký tự nhé.

5. Vô hiệu các link trong bình luận

Các link được đặt trong bình luận thường là spam, hoặc dẫn đến một trang khác mà bạn không muốn. Để xử lý việc này, bạn chỉ cần một đoạn code ngắn sau.

remove_filter('comment_text', 'make_clickable', 9);

Các đường dẫn trong bình luận không thể click được nữa.

6. Loại bỏ các class và id không mong muốn khỏi menu

Bạn có thể loại bỏ các class hoặc id không mong muốn trong menu tuỳ biến của bạn bằng đoạn code sau:

function my_css_attributes_filter($var) {  
    return is_array($var) ? array_intersect($var, array(
    'current-menu-item',
    'active'
    )) : '';  
}  
add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);  
add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);  
add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);

Trong đoạn code trên, chúng ta sẽ thay đổi class current-menu-item và active bằng một chuỗi rỗng ”.

7. Loại trừ trang ra khỏi công cụ tìm kiếm WordPress

Khi bạn sử dụng công cụ tìm kiếm của WordPress, kết quả bạn nhận về là cả trang và bài viết. Đôi khi các trang chẳng liên quan gì tới những thứ bạn cần tìm. Thêm đoạn code sau để loại bỏ trang khỏi kết quả mà bạn tìm kiếm:

  function SearchFilter($query) {  
    if ($query->is_search) {  
        $query->set('post_type', 'post');  
    }  
    return $query;  
}  
add_filter('pre_get_posts','SearchFilter');
8. Loại bỏ hoặc thay thế chữ Howdy

Có vẻ sẽ rất nhàm chán khi mà suốt ngày thấy chữ Howdy cạnh avatar của bạn, mặc dù bạn cũng chẳng hiểu nó có nghĩa gì.
Sau đây là cách để thay thế hoặc loại bỏ dòng chữ đấy:

function change_howdy($translated, $text, $domain) {  
    if (false !== strpos($translated, 'Howdy'))  
    return str_replace('Howdy', 'Xin chào', $translated);  
    return $translated;  
}  
add_filter('gettext', 'change_howdy', 10, 3);

Thế là dòng chữ ‘Howdy’ đã được thay thế bằng chữ ‘Xin chào’, rồi đấy. Để loại bỏ bạn chỉ cần để 2 dấu nháy đơn ” ở chữ ‘Xin chào’ là được.

9. Ẩn mục menu trong trang quản trị

Bạn có thể ẩn menu trong trang quản trị với những người dùng thông thường khi đăng nhập:
Đoạn code sau cho phép bạn làm điều đó:

function remove_admin_menus(){  
    if(is_user_logged_in() && !current_user_can('administrator')){  
        remove_menu_page( 'index.php' );                  //Dashboard  
        remove_menu_page( 'edit.php' );                   //Posts  
        remove_menu_page( 'upload.php' );                 //Media  
        remove_menu_page( 'edit.php?post_type=page' );    //Pages  
        remove_menu_page( 'edit-comments.php' );          //Comments  
        remove_menu_page( 'themes.php' );                 //Appearance  
        remove_menu_page( 'plugins.php' );                //Plugins  
        remove_menu_page( 'users.php' );                  //Users  
        remove_menu_page( 'tools.php' );                  //Tools  
        remove_menu_page( 'options-general.php' );        //Settings  
    }  
}  
add_action('admin_init', 'remove_admin_menus');

Có một điều cần lưu ý đó là: Đoạn code trên chỉ ẩn các mục được chọn khỏi menu trong trang quản trị nhưng không ngăn chặn quyền truy cập của người dùng. Người dùng vẫn có thể truy cập thông qua việc nhập đường dẫn chính xác và thanh địa chỉ của trình duyệt. Cách tốt nhất vẫn là bạn nên set quyền trong mục Users.

10. Loại bỏ thanh Admin bar khi người dùng không phải là quản trị viên

Có một số người dùng thông thường đăng nhập, bạn sẽ cần hạn chế các quyền sử dụng của họ. Thông thường WordPress cung cấp các chức năng qua thanh admin bar. Để hạn chế bớt quyền sử dụng, bạn cũng cần loại bỏ bớt các tính năng trên đó.
Sau đây là đoạn code mẫu, bạn có thể điều chỉnh tuỳ ý cho phù hợp.

function remove_admin_bar_links() {  
    global $wp_admin_bar;  
    if (!current_user_can('administrator')) {  
        $wp_admin_bar->remove_menu('wp-logo');          // Loại bỏ WordPress logo
        $wp_admin_bar->remove_menu('about');            // Loại bỏ link about WordPress
        $wp_admin_bar->remove_menu('wporg');            // Loại bỏ link WordPress.org
        $wp_admin_bar->remove_menu('documentation');    // Loại bỏ link WordPress documentation
        $wp_admin_bar->remove_menu('support-forums');   // Loại bỏ link support forums
        $wp_admin_bar->remove_menu('feedback');         // Loại bỏ link feedback
        $wp_admin_bar->remove_menu('site-name');        // Loại bỏ link site name
        $wp_admin_bar->remove_menu('view-site');        // Loại bỏ link visit site
        $wp_admin_bar->remove_menu('updates');          // Loại bỏ link updates
        $wp_admin_bar->remove_menu('comments');         // Loại bỏ link comments
        $wp_admin_bar->remove_menu('new-content');      // Loại bỏ link thêm nội dung
        $wp_admin_bar->remove_menu('my-account');       // Loại bỏ tab thông tin người dùng
    }  
}  
add_action('wp_before_admin_bar_render', 'remove_admin_bar_links');

Hi vọng với 10 đoạn code trên có thể giúp bạn tuỳ biến theo ý muốn của mình. Chúc bạn có một theme đẹp theo ý thích.

Chúng tôi tạm dừng chức năng bình luận, mọi thắc mắc vui lòng gửi thông qua mục liên hệ. Xin cám ơn!

Bài 5: Cách tạo comment trong Python

Bài 4: Cách khai báo biến trong Python

Bài 3: Cài đặt Intellij IDEA và chạy Hello World trong Python

Bài 2: Hướng dẫn download và cài đặt python trên Windows

Bài 5: Tìm hiểu về Props trong ReactJS

Bài 4: Components trong ReactJS

Bài 3: Giới thiệu JSX trong ReactJS

Bài 2: Cài đặt môi trường chạy ReactJS

Bài 18: Thuộc tính icon trong CSS

Các biểu tượng có thể dễ dàng được thêm vào trang HTML của b...

Bài 17: Thuộc tính box model trong CSS

Bài 16: Thuộc tính outline trong CSS

Bài 15: Thuộc tính Height/Width trong CSS

Chat Icon Close Icon