Filed under: Codex

“Bắt buộc phải có thumbnail” cho bài viết

Với những website sử dụng WP mà trong đó có nhiều người viết. Nghĩa là hơn 1 người viết bài, đôi khi có người quên / không muốn đưa thumbnail lên bài viết. Ở đây chúng ta có thể gọi là "featured image".

thumb_req

Là một quản trị viên thực sự tôi không muốn thấy website của mình thiết kế dưới dạng magazine hoặc blog có hình ảnh đại diện mà trong đó có một vài bài thiếu mất thumbnail.

Để bắt buộc bài viết phải có thumbnail trước khi Publish tôi xin giới thiệu một snippet giúp chúng ta giải quyết vấn đề.

Chèn vào functions.php

add_action('save_post', 'wpds_check_thumbnail');
add_action('admin_notices', 'wpds_thumbnail_error');
function wpds_check_thumbnail($post_id) {
    // change to any custom post type
    if(get_post_type($post_id) != 'post')
        return;
    if ( !has_post_thumbnail( $post_id ) ) {
        // set a transient to show the users an admin message
        set_transient( "has_post_thumbnail", "no" );
        // unhook this function so it doesn't loop infinitely
        remove_action('save_post', 'wpds_check_thumbnail');
        // update the post set it to draft
        wp_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
        add_action('save_post', 'wpds_check_thumbnail');
    } else {
        delete_transient( "has_post_thumbnail" );
    }
}
function wpds_thumbnail_error()
{
    // check if the transient is set, and display the error message
    if ( get_transient( "has_post_thumbnail" ) == "no" ) {
        echo "<div id='message' class='error'><p><strong>You must select Featured Image. Your Post is saved but it can not be published.</strong></p></div>";
        delete_transient( "has_post_thumbnail" );
    }
}
Filed under: Codex

Xóa comment dựa theo field url

Vấn nạn spam làm chúng ta ai cũng đau đầu.
Khi sử dụng WP thì vấn đề đó càng trầm trọng hơn, nếu không có những biện pháp bảo vệ comment form thì quả là thảm họa. Số lượng lớn comment sẽ đồ về database và nếu chúng ta có lỡ tự động Approve thì càng khổ sở hơn.

comment_f_url

Thường spammer hay nhồi nhét URL vào field hoặc nội dung comment. Ở đây tôi xin giới thiệu cách xóa sạch những comment có field URL nhất định bằng SQL query:

DELETE from wp_comments WHERE comment_author_url LIKE "%url%" ;

Ví dụ với %url% = %wp.vn%

Lưu ý câu truy vấn trên là lệnh SQL.

Filed under: Plugins

Thay đổi Post Type dễ dàng

Với những dự án sử dụng BBPress và nhiều post type khác, khi chúng ta viết bài hoặc nhiều người viết bài có lẽ sẽ có những lần cần chỉnh sửa post type cho hợp lý.

Lấy ví dụ đơn giản, tôi có 2 post type sau:

  • Post
  • Page
  • Chúng ta đều biết nếu viết bài dưới dạng Post nhưng muốn chuyển bài viết ấy thành Page chúng ta đều phải viết lại Page. Nhưng nay có cách giải quyết dễ hơn, chỉ cần tùy chỉnh có thể đưa Post thành Page và ngược lại. Hay nhiều post type khác nữa.

    Post_Type_Switcher

    Plugin: Post Type Switcher
    Download: https://wordpress.org/plugins/post-type-switcher/

    Filed under: Articles

    Jetpack 2.9.3 Vá lỗi bảo mật nghiêm trọng

    Vừa qua AUTOMATTIC đã phát hành bản Jetpack 2.9.3 nhằm vá lỗi an ninh nghiêm trọng của các bản cũ hơn. Nếu bạn nào hiện đang sử dụng jetpack hoặc active hoặc không đều cần nâng cấp để tránh nguy cơ tiềm tàng.

    Bạn có thể update trực tiếp trong backend của mình hoặc tải rồi upload đè nên phiên bản cũ tại đây (Download jetkack)

    Lỗ hổng an ninh trên được mô tả rằng hacker sẽ lợi dụng để vượt quyền truy cập, đăng bài viết lên WP. Có thể leo thang quyền truy cập như administrator. Lỗi được phát hiện từ các bản jetkack 1.9 đến 2.9.2.

     

    jetpack

    Dù chưa có bằng chứng rằng các website WP đã bị lợi dụng để tấn công nhưng lỗi an ninh này đã được “public” vì vậy khuyên các bạn nên nâng cấp càng sớm càng tốt. Ngoài ra, để được cập nhập thường xuyên về thông tin chúng ta cũng nên tham gia mailling để nhận được email ngay khi có các bản nâng cấp hay lỗi an ninh được phát hiện.

    Ngoài ra chúng ta cũng có thể sử dụng các dịch vụ manager nhằm tự động nâng cấp core hoặc theme hay plugin.

    • http://jetpack.me
    • https://wordpress.org/plugins/jetpack/
    Filed under: Codex

    Rút ngắn ký tự với wp trim words

    Cố định số lượng ký tự là một đòi hỏi thông thường trong một số các trường hợp. Ở đây với việc nêu lên ba câu hỏi để để giải thích việc dùng hàm này như sau:
    Làm thế nào để cố định hiển thị title với 40 ký tự nếu title dài hơn 40 ký tự?
    Làm thế nào để cố định excerpt với 60 ký tự?
    Làm thế nào để cố định content với 120 ký tự?

    Mô tả:

    Ví dụ:

    Các trường hợp:

    Lưu ý: Chỉ sử dụng với WP 3.3 trở lên!

    Filed under: Codex

    Thêm body class vào page template

    Bằng việc đưa hàm này vào functions.php chúng ta có thể tùy biến css class cho một page nào đó nhằm xây dựng template một cách dễ dàng và riêng biệt hơn.

    Như vậy ta có thể tùy biến .archive

    Filed under: Articles

    Về việc mở diễn đàn thảo luận

    Xin chào,

    Dù ít nhiều người quan tâm, dù muốn hay không thì việc đóng góp và trao đổi vẫn là sự kết nối trong tri thức.
    Ở phần nào đó văn hóa của chúng ta thì diễn đàn vẫn có vị trí kha khá quan trọng, chỉ có điều chúng ta càng ngày càng ít nói đi vì các mạng xã hội.

    Tôi không có nhiều thời gian, vẫn chưa tìm được người nào đó cùng viết blog này để trao đổi và học hỏi thêm. Nay tôi muốn mở một diễn đàn để mọi người có thể thảo luận công khai và cởi mở hơn.

    Đã từng thử build với bbPress nhưng dường như nó không đáp ứng được những yêu cầu trong đòi hỏi riêng của tôi cũng như của hình dùng về “forun” nói chung. Với phần lớn chúng ta thì diễn đàn cần có những chức năng tối thiểu mà bbPress chưa có.

    Tôi muốn có được sự góp ý về việc chọn lựa mã nguồn mở PHP để mở diễn đàn. Rất mong có được sự đóng góp từ các bạn. Yêu cầu đơn giản chỉ là có những chức năng “classic” của diễn đàn, nhỏ nhẹ – an toàn.

    – Fluxbb/PunBB
    – EsoTalk
    – Phorum
    – phpBB
    – Khác?

    Ý của bạn thế nào?