wordpress的新手在这里有点挣扎。
基本上我需要创建4个自定义页面模板:Home,Portfolio,About,Contact。
对于这些新页面中的每一个,我都需要一个新的CSS文件。我已将我的脚本portfolio.css
列入其中:
function my_custom_styles() {
wp_register_style( 'portfolio',
get_template_directory_uri().'/portfolio.css' );
if ( is_portfolio ) {
wp_enqueue_style( 'portfolio' );
}
}
add_action( 'wp_enqueue_scripts', 'my_custom_styles' );
这很有效 - 我唯一的问题是我的主样式表style.css
与此冲突并覆盖了很多样式。基本上,style.css
和portfolio.css
同时加载。
如何获取它以便只在我的主页上加载style.css,portfolio.css
加载到我的投资组合页面上,about.css
仅加载到我的关于页面等。
我似乎无法在网上找到任何帮助!
干杯!
答案 0 :(得分:2)
理想情况下,portfolio.css
,about.css
等扩展 style.css
,其中大多数核心样式(字体大小,重量,填充,重音声明)等等)将在style
中定义,但portfolio
会添加一些其他地方未使用的其他样式。
如果您真的希望它们是互斥的,那么您必须将style.css文件出列。
查看您的信息来源并搜索/YOURACTIVETHEME/style.css
。请注意id="some-style-id"
标记中的<link>
。那是&#34;手柄&#34;对于样式表,您可以使用wp_deregister_style()
或wp_dequeue_style()
将其删除。
此外,清理代码,这些不一致的缩进很难维护。通过您的代码,您确定您的if
声明是否有效? is_portfolio
现在是一个常数...你可能打算使用is_page()
或is_page_template()
函数传递它。
add_action( 'wp_enqueue_scripts', 'my_custom_styles' );
function my_custom_styles() {
wp_register_style( 'portfolio', get_template_directory_uri().'/portfolio.css' );
if( is_page('portfolio') ){ // Use Page Title, Page Slug, or Page ID here
wp_enqueue_style( 'portfolio' );
wp_dequeue_style( 'YOUR-ID-FROM-EARLIER' );
}
}
所有这些都说,如果你有自定义页面模板,你可以使用put
wp_enqueue_style( 'portfolio', get_template_directory_uri().'/portfolio.css' );
wp_dequeue_style( 'YOUR-ID-FROM-EARLIER' );
在页面模板文件中。
要考虑的另一件事是你正在使用get_template_directory_uri()
来从父主题中提取。如果您想要使用模板的活动子主题(ala Genesis),则需要使用get_stylesheet_directory_uri()
。