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

标签 php html css wordpress

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.cssportfolio.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/

相关文章:

php - 从mysql数据库中检索图像到android

html - 元素可以包含bem中的 block 吗

html - 当缩小页面 div 移动时

CSS 下划线问题与 chrome 上的字体

css - 剪辑路径不适用于 chrome

php - 如何从 $_POST 获取数据数组

javascript - jQuery - 通过 Id 获取动态 (*) 元素并放入数组

php - 获取 PHP 中的 URL 参数

javascript - 为什么我们在使用 Java Script 时要使用 &lt;script "inline"..> 标签

html - 显示和隐藏 HTML 部分