如何使用新样式表在Wordpress中创建自定义页面?

时间:2018-05-11 20:04:42

标签: php html css wordpress

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.cssportfolio.css同时加载。

如何获取它以便只在我的主页上加载style.css,portfolio.css加载到我的投资组合页面上,about.css仅加载到我的关于页面等。

我似乎无法在网上找到任何帮助!

干杯!

1 个答案:

答案 0 :(得分:2)

理想情况下,portfolio.cssabout.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()