Chia sẻ 20 đoạn code tối ưu dành cho Functions.php Wordpress

Thảo luận trong 'Chia sẻ mã nguồn - Share code' bắt đầu bởi cuongteam, 10/2/20.

  1. cuongteam

    cuongteam Member

    Bài viết:
    36
    Đã thích:
    1
    Thủ thuật với file Functions.php giúp website WordPress của bạn có thêm nhiều tính năng hay hơn và hoạt động trơn tru hơn.

    [​IMG]

    Thay logo riêng trong Dashboard


    Bạn muốn thay đổi Logo wordpress ở thanh adminbar trong trang quản trị WordPress ?
    Đầu tiên thì bạn cần phải có 1 logo 16 x 16 và upload nó vào thư viện của mình.
    Ghi nhớ đường dẫn đến logo đó.
    Mã:
    function dh_custom_logo() {
    echo '
    <style type="text/css">
    #wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
    background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
    background-position: 0 0;
    color:rgba(0, 0, 0, 0);
    }
    #wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
    background-position: 0 0;
    }
    </style>
    ';
    }
    //hook into the administrative header output
    add_action('wp_before_admin_bar_render', 'dh_custom_logo');
    Đoạn (“/images/custom-logo.png”) bạn thay thế thành đường dẫn logo của mình.

    Disable tính năng Search

    Mã:
    function fb_filter_query( $query, $error = true ) {
    
    if ( is_search() ) {
    $query->is_search = false;
    $query->query_vars[s] = false;
    $query->query[s] = false;
    
    // to error
    if ( $error == true )
    $query->is_404 = true;
    }
    }
    
    add_action( 'parse_query', 'fb_filter_query' );
    add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
    THAY ĐỔI ĐỘ DÀI ĐOẠN TRÍCH VĂN BẢN (POST)
    Mã:
    function new_excerpt_length($length) {
    return 100;
    }
    add_filter('excerpt_length', 'new_excerpt_length');

    THÊM TÀI KHOẢN ADMIN MỚI

    Mã:
    function dh_admin_account(){
    $user = 'Username';
    $pass = 'Password';
    $email = 'email@domain.com';
    if ( !username_exists( $user )  &amp;&amp; !email_exists( $email ) ) {
    $user_id = wp_create_user( $user, $pass, $email );
    $user = new WP_User( $user_id );
    $user-&gt;set_role( 'administrator' );
    } }
    add_action('init','dh_admin_account');

    TẠO AUTHUR BOX KHÔNG CẦN PLUGIN

    Mã:
    unction wpb_author_info_box( $content ) {
     
    global $post;
     
    // Detect if it is a single post with a post author
    if ( is_single() && isset( $post->post_author ) ) {
     
    // Get author's display name
    $display_name = get_the_author_meta( 'display_name', $post->post_author );
     
    // If display name is not available then use nickname as display name
    if ( empty( $display_name ) )
    $display_name = get_the_author_meta( 'nickname', $post->post_author );
     
    // Get author's biographical information or description
    $user_description = get_the_author_meta( 'user_description', $post->post_author );
     
    // Get author's website URL
    $user_website = get_the_author_meta('url', $post->post_author);
     
    // Get link to the author archive page
    $user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
     
    if ( ! empty( $display_name ) )
     
    $author_details = '<p class="author_name">About ' . $display_name . '</p>';
     
    if ( ! empty( $user_description ) )
    // Author avatar and bio
     
    $author_details .= '<p class="author_details">' . get_avatar( get_the_author_meta('user_email') , 90 ) . nl2br( $user_description ). '</p>';
     
    $author_details .= '<p class="author_links"><a href="'. $user_posts .'">View all posts by ' . $display_name . '</a>'; 
     
    // Check if author has a website in their profile
    if ( ! empty( $user_website ) ) {
     
    // Display author website link
    $author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow">Website</a></p>';
     
    } else {
    // if there is no author website then just close the paragraph
    $author_details .= '</p>';
    }
     
    // Pass all this info to post content 
    $content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
    }
    return $content;
    }
     
    // Add our function to the post content filter
    add_action( 'the_content', 'wpb_author_info_box' );
     
    // Allow HTML in author bio section
    remove_filter('pre_user_description', 'wp_filter_kses');
    Tiếp theo bạn cần phải CSS lại cho nó đẹp.

    Đây là đoạn CSS mẫu, bạn có thể tùy chỉnh theo ý của mình.

    Paste đoạn này vào Style.css trong Child Themes hoặc Theme:

    Mã:
    .author_bio_section{
    background: none repeat scroll 0 0 #F5F5F5;
    padding: 15px;
    border: 1px solid #ccc;
    }
     
    .author_name{
    font-size:16px;
    font-weight: bold;
    }
     
    .author_details img {
    border: 1px solid #D8D8D8;
    border-radius: 50%;
    float: left;
    margin: 0 10px 10px 0;
    }
    Và đây là kết quả:

    [​IMG]

    LẤY HÌNH ẢNH ĐẦU TIÊN CỦA BÀI VIẾT LÀM FEATURE IMAGE

    Mã:
    /** tự lấy hình đầu tiên trong bài viết làm thumbnail **/
    function auto_featured_image() {
        global $post;
     
        if (!has_post_thumbnail($post->ID)) {
            $attached_image = get_children( "post_parent=$post->ID&amp;post_type=attachment&amp;post_mime_type=image&amp;numberposts=1" );
            
          if ($attached_image) {
                  foreach ($attached_image as $attachment_id => $attachment) {
                       set_post_thumbnail($post->ID, $attachment_id);
                  }
             }
        }
    }
    // Use it temporary to generate all featured images
    add_action('the_post', 'auto_featured_image');
    // Used for new posts
    add_action('save_post', 'auto_featured_image');
    add_action('draft_to_publish', 'auto_featured_image');
    add_action('new_to_publish', 'auto_featured_image');
    add_action('pending_to_publish', 'auto_featured_image');
    add_action('future_to_publish', 'auto_featured_image');
    TẮT COMMENT TRÊN WEBSITE
    Mã:
    function df_disable_comments_status() {
        return false;
    }
    add_filter('comments_open', 'df_disable_comments_status', 20, 2);
    add_filter('pings_open', 'df_disable_comments_status', 20, 2);
    THAY ĐỔI LOGO WORDPRESS Ở TRANG LOGIN
    Mã:
    function scanwp_custom_login_logo() {
         echo '<style type="text/css">
             h1 a { background-image:url('.get_stylesheet_directory_uri().'/img/logo.jpg) !important;
             height: 120px !important; width: 410px !important; margin-left: -40px;}
         </style>';
    }
    add_action('login_head', 'scanwp_custom_login_logo')
    DISABLE RSS FEED
    Mã:
    function fb_disable_feed() {
    wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') );
    }
     
    add_action('do_feed', 'fb_disable_feed', 1);
    add_action('do_feed_rdf', 'fb_disable_feed', 1);
    add_action('do_feed_rss', 'fb_disable_feed', 1);
    add_action('do_feed_rss2', 'fb_disable_feed', 1);
    add_action('do_feed_atom', 'fb_disable_feed', 1);

    THAY ĐỔI FOOTER TRONG ADMIN BAR CỦA WP ADMIN

    Mã:
    function remove_footer_admin () {
    
      echo "Dien-gi-vo-day-cung-duoc";
    
    }
    
    add_filter('admin_footer_text', 'remove_footer_admin');
    TỰ ĐỘNG UPDATE THEMES WORDPRESS
    Mã:
    add_filter( 'auto_update_theme' , '__return_true' );
    Do bài viết quá dài nên các bạn sang đây xem tiếp 10 cái còn lại nhaaaaa !
    Link chia sẻ: cuongteam.com/thu-thuat-voi-file-functions-php-wordpress.html
     
    Đang tải...
  2. nonamend

    nonamend Member

    Bài viết:
    71
    Đã thích:
    4
    Chia sẻ khá là hữu ích. Cảm ơn chủ thớt nhiều :D
     
    cuongteam thích bài này.
  3. cuongteam

    cuongteam Member

    Bài viết:
    36
    Đã thích:
    1
    Cảm ơn bác nonamend ạ. Bác thông cảm do code nhiều nên mình ko thêm hết vào thớt trên forum được ạ :D :D
     
  4. CáiGìĐây

    CáiGìĐây Member

    Bài viết:
    57
    Đã thích:
    9
    Cũng không sao, click ủng hộ cũng gọi là có chút cống hiến cho ae seo là ngon rồi
     
    cuongteam thích bài này.
  5. Bk8 Vietnam

    Bk8 Vietnam New Member

    Bài viết:
    6
    Đã thích:
    0
    Cái tự động update theme em thấy hơi nguy hiểm :v nhỡ bản mới không thích hợp hoặc xóa mất file custom thì toi
     
  6. dothocungtuongphat

    dothocungtuongphat Member

    Bài viết:
    43
    Đã thích:
    4
    cái này chia sẻ đầy trên mạng rồi, chủ thớt sao lại gắn link như kia không sợ bị band à.
     
  7. cuongteam

    cuongteam Member

    Bài viết:
    36
    Đã thích:
    1
    Cảm ơn bạn. Mình chỉ tổng hợp lại cho anh em không mất công tìm từ nhiều nguồn.
    --- Post updated ---
    Cảm ơn bác đã ủng hộ em ạ :D
    --- Post updated ---
    Dùng Child Theme cho an toàn bạn ei.
     
  8. NLinh

    NLinh Member

    Bài viết:
    86
    Đã thích:
    5
    Nhìn vô toàn là code vơi code haha, phục bạn thật, cảm ơn bạn về bài chia sẻ nhe. Mà chắc nó không ảnh hưởng gì đến update cũng như add plugin sau này chứ bác?
     
    cuongteam thích bài này.
  9. cuongteam

    cuongteam Member

    Bài viết:
    36
    Đã thích:
    1
    Cảm ơn bạn, mình chỉ tổng hợp lại để anh em không mất công tìm nhiều nguồn thôi nà.
    Việc add thêm ở trên sẽ không ảnh hưởng nha bạn. Trừ khi nó bị trùng tính năng
     
  10. ThongHutBePhot

    ThongHutBePhot Member

    Bài viết:
    34
    Đã thích:
    1
    Cái có trích trong code có sẵn không bác chủ thớt nhỉ! Thấy giống giống trên Github đó nha!
     
    cuongteam thích bài này.
Tags:
Đang tải...
Đang tải...