Rewrite static theme assets and plugins directory

Quảng cáo
Ads_ngang
Website dinhthuanit.com có bài Rewrite static theme assets and plugins directory

Với những website wordpress, chúng ta thường phát giác ra ngay bằng việc copy ảnh có trên website, đường link lòi ra có dạng:

 /wp-content/themes/xxx/images/image1.jpg 

Đường dẫn đến tệp ảnh hay javascript quá dài hoặc là chúng ta không muốn để lộ cho người dùng phát hiện ra đấy là mã nguồn wordpress. Đường dẫn này có thể đổi thành:
Thay:

 /wp-content/themes/xxx/images/ 

Bằng:

 /assets/images/ 

Như vậy đường dẫn ảnh ở trên sẽ là: /assets/images/image1.jpg

Sau này là một vài cách để viết lại đường dẫn quen thuộc của wordpress:

Sử dụng .htaccess

 RewriteEngine On RewriteBase / RewriteRule ^css/(.*) /wp-content/themes/theme-name/css/$1 [L] RewriteRule ^js/(.*) /wp-content/themes/theme-name/js/$1 [L] 

Cách 2

   //rewrite mọi folder trong theme folder.     function   change_css_js_url  (    $content    )     {     $theme_name     =     next    (    explode    (    '/themes/'    ,   get_stylesheet_directory  (    )    )    )    ;     $current_path     =     '/main/themes/'    .    $theme_name    .    '/'    ;     $new_path     =     '/'    ;     // No need to add /css or /js here since you're mapping the subdirectories 1-to-1     $content     =     str_replace    (    $current_path    ,     $new_path    ,     $content    )    ;     return     $content    ;     }   add_filter  (    'bloginfo_url'    ,     'change_css_js_url'    )    ;   add_filter  (    'bloginfo'    ,     'change_css_js_url'    )    ;   

– Đoạn code trên đã thay đổi đường đẫn của hàm bloginfo, đây cũng là 1 cách này hay.

Cách 3

Sử dụng đoạn code sau:

    <   ?php   // rewrite /wp-content/themes/theme-name/css/ to /css/     // rewrite /wp-content/themes/theme-name/js/ to /js/     // rewrite /wp-content/themes/theme-name/img/ to /img/     // rewrite /wp-content/plugins/ to /plugins/       function   roots_flush_rewrites  (    )     {     global     $wp_rewrite    ;     $wp_rewrite    ->     flush_rules    (    )    ;     #vào wp-admin chạy 1 lần (k nên đặt vào site, sẽ nặng vì chỉ cần chạy 1 lần) để flush lại rewrite, thì rewrite này mới có tác dụng.     }       function   roots_add_rewrites  (    $content    )     {     $theme_name     =     next    (    explode    (    '/themes/'    ,   get_stylesheet_directory  (    )    )    )    ;     global     $wp_rewrite    ;     $roots_new_non_wp_rules     =     array    (     'css/(.*)'     =>      'wp-content/themes/'    .     $theme_name     .     '/css/$1'    ,     'js/(.*)'     =>      'wp-content/themes/'    .     $theme_name     .     '/js/$1'    ,     'img/(.*)'     =>      'wp-content/themes/'    .     $theme_name     .     '/img/$1'    ,     'plugins/(.*)'     =>      'wp-content/plugins/$1'     )    ;     $wp_rewrite    ->     non_wp_rules     +=     $roots_new_non_wp_rules    ;     }     add_action  (    'admin_init'    ,     'roots_flush_rewrites'    )    ;       function   roots_clean_assets  (    $content    )     {     $theme_name     =     next    (    explode    (    '/themes/'    ,     $content    )    )    ;     $current_path     =     '/main/themes/'     .     $theme_name    ;     $new_path     =     ''    ;     $content     =     str_replace    (    $current_path    ,     $new_path    ,     $content    )    ;     return     $content    ;     }       function   roots_clean_plugins  (    $content    )     {     $current_path     =     '/ext'    ;     $new_path     =     '/pluggenerate_rewrite_rules'    ,     'roots_add_rewrites'    )    ;     if     (    !  is_admin  (    )    )     {   add_filter  (    'plugins_url'    ,     'roots_clean_plugbloginfo'    ,     'roots_clean_assets'    )    ;   add_filter  (    'stylesheet_directory_uri'    ,     'roots_clean_assets'    )    ;   add_filter  (    'template_directory_uri'    ,     'roots_clean_assets'    )    ;   add_filter  (    'script_loader_src'    ,     'roots_clean_plugstyle_loader_src'    ,     'roots_clean_plugins'    )    ;     }     ?>    

Chú ý:
Xóa cache và load page nhiều lần nếu thấy rewrite không được thay đổi.
Nếu bloginfo(‘stylesheet_url’); là đường dẫn tới file style.css mà trả về 404 not found, thì loại bỏ filter: bloginfo,stylesheet_directory_uri,template_directory_uri

Để thu được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng cũng đều có thể nhận được sự trợ giúp trên Twitter và Facebook

Bài viết Rewrite static theme assets and plugins directory được tổng hợp và biên tập bởi: dinhthuanit.com. Mọi ý kiến đóng góp và phản hồi vui lòng gửi Liên Hệ cho dinhthuanit.com để điều chỉnh. dinhthuanit.com xin cảm ơn.

Bài Viết Liên Quan


Bài Viết Khác


Quảng cáo
Ads_ngang