it-swarm-ko.tech

표시 URL 경로를 css 및 js 파일로 변경

아무도 내가 어떻게 자동으로 회전 할 수 있는지 알지 못한다.

http://www.example.com/wp-content/themes/theme-name/css/stylesheeet.css

으로

http://www.example.com/css/stylesheet.css

당연히 웹 사이트의 루트에 해당 폴더를 만들고 거기에 파일을 배치하고 참조 할 수는 있지만 지금은 내가 무엇을했는지입니다.

테마 폴더 내에 모든 CSS 및 JavaScript 파일을 유지할 수있는 방법을 찾고 있지만 위의 URL 경로를 표시하려면 WordPress에 대해 페이지 원본을 보는 것이 좋습니다.

이상적인 상황에서 모든 이미지를 포함하여 내 테마 폴더 내에서 참조되는 모든 파일에 대해 자동으로이를 수행 할 수있는 코드를 찾고 있습니다.

4

나는 두 가지가 필요하다고 생각합니다.

먼저 .htaccess 파일의 다시 쓰기 규칙을 다음과 같이 수정합니다.

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

둘째, 테마의 functions.php에 다음과 같이 필터를 추가하십시오 :

function change_css_js_url($content) {
    $current_path = '/wp-content/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');

몇 가지주의 사항 : - 플러그인이나 뭔가 bloginfo () 또는 get_bloginfo ()를 사용하지 않으면 필터를 트리거하지 않습니다. 필요에 따라 함수를 다른 필터에 연결하여이 문제를 해결할 수 있습니다. - 일부 플러그인/테마/등은 하드 코딩 된 경로를 사용합니다. WP의 함수 중 하나를 사용하여 경로를 얻으려면 코드를 수정하는 것 외에는 할 수있는 일이별로 없습니다.

Twentyten 테마 (css/js 하위 디렉토리 없음)를 사용하는 동일한 예제가 있지만 아이디어는 같습니다.

.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^twentyten/(.*) /wp-content/themes/twentyten/$1 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

functions.php

function change_css_js_url($content) {
    $current_path = '/wp-content/themes/';
    $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');
2
gabrielk

이상적인 상황에서 자동으로> 이미지를 포함하여 내 테마 폴더 내에서 참조되는 모든 파일에 대해 추가 할 수있는 코드를 찾고 있습니다.

문제를 해결할 대체 솔루션을 제안하려고합니다.

wp-content/themes/your-theme의 루트 디렉토리에 대한 심볼릭 링크를 생성하십시오/css

Linux에서 심볼릭 링크를 만들려면 #ln -s 명령을 사용하십시오. 예 :

#ln -s /home/user-name/public_html/wp-content/themes/your_theme_name /home/user-name/public_html/css

이제 http://example.com/wp-content/themes/your_theme_name/ 에있는 파일은 url을 사용하여 액세스 할 수 있습니다.

http://example.com/css/

이 작업을 수행하려면 httpd.conf 파일에서 FollowSymLinks 지시문을 허용해야합니다. httpd.conf의 설정을 덮어 쓰는 .htaccess 파일에 넣을 수도 있습니다.

Httpd.conf에서 설정은 다음과 같습니다.

<Directory />
Options Indexes FollowSymLinks
</Directory>

변경 사항이 영향을 받기 전에 Apache를 다시 시작해야합니다.

#/etc/init.d/Apache2 restart

Maxi-PediaApache Docs 의 SymLinks에 대한 자세한 내용을 볼 수 있습니다.

2
Chris_O