将可见的url路径更改为css&js文件

时间:2010-09-09 作者:NetConstructor.com

是否有人知道我如何自动转向:

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

进入

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

当然,我可以在网站的根目录中创建一个适用的文件夹,将文件放在那里,然后引用它们,但这就是我现在想要的。

我正在寻找一种方法来保持所有CSS&;主题文件夹中的JavaScript文件,但如果您查看页面的源代码,我希望wordpress显示上面列出的url路径。

在理想的情况下,我正在寻找一段可以添加的代码,它可以自动为我的主题文件夹中引用的所有文件(包括任何图像)执行此操作。

2 个回复
最合适的回答,由SO网友:gabrielk 整理而成

我想你需要两件事:

首先,您的中的重写规则。htaccess文件如下:

RewriteEngine On
RewriteBase /
RewriteRule ^css/(.*) /wp-content/themes/theme-name/css/$1 [L]
RewriteRule ^js/(.*) /wp-content/themes/theme-name/js/$1 [L]
其次,为主题的函数添加一个过滤器。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\\u 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\');

SO网友:Chris_O

在理想的情况下,我正在寻找一段可以添加的代码,它可以自动>对我的主题文件夹中引用的所有文件(包括任何图像)执行此操作。

我将提出另一种解决问题的方法。

Create a symbolic link from wp-content/themes/your-theme to your root directory/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中允许FollowSymLinks指令。conf文件。你也可以把它放在一个。htaccess文件,该文件将覆盖httpd中的设置。形态

在httpd中。conf设置为:

<Directory />
Options Indexes FollowSymLinks
</Directory>
在更改生效之前,您必须重新启动Apache:

#/etc/init.d/apache2 restart
有关符号链接的更多信息,请访问Maxi-Pedia 而在Apache Docs

结束

相关推荐

Adding goodies to themes

如何在主题更新时向Arjuna-X等主题添加内容而不丢失?儿童主题是一种很好的方式,还是有其他选择?如果新版本的主题对我添加的功能具有本机支持,该怎么办?