wordpress 的新手,所以在这里有点挣扎。
基本上我有 4 个需要创建的自定义页面模板:主页、投资组合、关于、联系方式。
对于这些新页面中的每一个,我都需要一个新的 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
仅加载到我的关于页面等
我似乎无法在网上找到任何帮助!
大家好!
最佳答案
理想情况下,portfolio.css
, about.css
等会延长 style.css
,其中大多数核心样式(字体大小、粗细、填充、重音声明等)将在 style
中定义。 ,但是portfolio
会添加一些其他地方没有使用的额外样式。
如果您真的希望它们相互排斥,则必须将 style.css 文件出队。
查看您的页面源并搜索 /YOURACTIVETHEME/style.css
.注意 id="some-style-id"
在<link>
标签。这是样式表的“句柄”,您可以使用 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()
相反。
关于php - 如何使用新样式表在 Wordpress 中创建自定义页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50299508/