Wordpress 文件 functions.php 未加载 style.css
Posted
技术标签:
【中文标题】Wordpress 文件 functions.php 未加载 style.css【英文标题】:Wordpress file functions.php is not loading the style.css 【发布时间】:2019-05-27 23:51:52 【问题描述】:我似乎无法让我的 WordPress 主题的 functions.php
文件加载我的样式表。
我在我的 WordPress 主题的主题目录中创建的文件及其各自的内容如下;
style.css
/*
Theme Name: Theme Study
Author: A
Version: 1.0.0
*/
body
color: #4d5a6c !important;
header.php
<!DOCTYPE html>
<html lang="en">
<head>
<?php wp_head(); ?>
</head>
<body>
<h2>This is the header</h2>
index.php
<?php get_header();
while ( have_posts() )
the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_content();
get_footer(); ?>
页脚.php
<h4>This is the footer</h4>
<?php wp_footer(); ?>
</body>
</html>
functions.php
<?php
function style_files()
wp_enqueue_style( 'style_main', get_stylesheet_uri() );
add_action( 'wp_enqueue_scripts', 'style_files' );
另一方面,我意识到当我直接引用我的 WordPress 主题的 header.phpfile as below, it works as expected, but my aim is to achieve that in the
functions.php` 文件中的样式表时。
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_uri(); ?>" />
<?php wp_head(); ?>
</head>
<body>
<h2>This is the header</h2>
为什么我的style.ccs
没有从functions.php
文件中加载?
【问题讨论】:
我已经尝试过上面的代码并且工作正常。我正在获取 style.css 文件 有没有办法查看或调试问题所在? 确保您的 style.css 位于主题根文件夹中,并要求您提供您的页面查看源,以便更好地了解。 我放源码 如果您尝试将 wp-config.php 中的WP_DEBUG
设置为 true
会怎样?所以应该是:define('WP_DEBUG', true);
。您是否看到任何错误消息?
【参考方案1】:
请用您的 wp_enqueue_style 函数替换此函数。
wp_enqueue_style( 'style', get_stylesheet_uri() );
【讨论】:
仍未加载 我在本地主机上 在浏览器中检查元素模式下的链接。 如果我把这个标签" " 在头部,而不是它会起作用,但我了解到正确的方法是在 functions.php 中插入 wp_head 并制作 wp_enqueue_style【参考方案2】:使用get_template_directory_uri()
而不是get_stylesheet_uri()
,就像在您的functions.php
文件中一样。
下面是一个 sn-p 说明它的阅读方式;
function style_files()
wp_enqueue_style(
'style_main',
get_template_directory_uri() . '/style.css',
array(),
false,
'all'
);
add_action( 'wp_enqueue_scripts', 'style_files' );
这是一种将样式表文件添加/排队到 WordPress 主题的安全方法。
上面的格式如下:
wp_enqueue_style( $handle, $src, $deps, $ver, $media );
在哪里
$handle
(string) (Required) Name of the stylesheet. Should be unique.
$src
(string) (Optional) Full URL of the stylesheet,
or path of the stylesheet relative to the WordPress root directory.
Default value: ''
$deps
(array) (Optional) An array of registered stylesheet handles this stylesheet depends on.
Default value: array()
$ver
(string|bool|null) (Optional) String specifying stylesheet version number, if it has one,
which is added to the URL as a query string for cache busting purposes. If version is set to
false, a version number is automatically added equal to current installed WordPress version.
If set to null, no version is added.
Default value: false
$media
(string) (Optional) The media for which this stylesheet has been defined.
Accepts media types like 'all', 'print' and 'screen', or media queries like
'(orientation: portrait)' and '(max-width: 640px)'.
Default value: 'all'
更多信息here。
【讨论】:
如果我把 放在头上,它似乎会起作用wp_head();不起作用 在functions.php
文件中执行此操作后,您无需执行此操作。它应该工作。您可能需要添加纯色背景颜色(例如:bodycolor: #4d5a6c !important;background-color:red;
)以检查主题的style.css
文件是否更接近加载。前往WordPress codex site了解更多详情。
@AlêMoraes:请在故障排除后使用纯色背景提供反馈。此外,我上面的评论假设您在 WordPress 安装的 wp-content/themes
目录中拥有包含自定义 WordPress 主题的文件夹,其中 index.php
、style.css
、functions.php
、footer.php
和 header.php
作为文件。
【参考方案3】:
如果你尝试把它放在你的 function.php 文件中:
<?php
function style_files()
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css');
add_action('wp_enqueue_scripts', 'style_files');
样式 id 命名为:parent-style 通常用于父主题(如果您正在开发子主题或只是单个主题),第二个是如果您正在开发子主题并且应该加载style.css
在您的孩子主题中。
【讨论】:
我正在从零开始制作主题,我所有的文件都在主题文件夹的根目录中 所以你只需要在我的 sn-p 中带有 "parent-style" 的那个。你可以用 "main-style" 或任何你喜欢的名字来命名它。你试过吗?并且您应该确保您的样式名称是唯一的(样式 id 不重复) 这是一个新的研究,我没有任何文件,只是上面的那些,我改变了“父样式”这一行,但它不起作用,似乎 wp_head 不起作用 这有点奇怪。也许您也应该尝试致电wp_enqueue_script
以确保wp_head
不起作用。【参考方案4】:
使用此代码,我认为它对您很有效。
function theme_styles()
// Load all of the styles that need to appear on all pages
wp_enqueue_style( 'main', get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'custom', get_template_directory_uri() . '/css/custom.css' );
add_action('wp_enqueue_scripts', 'theme_styles');
【讨论】:
仍未加载 检查你的 CSS 路径。我已经在使用它了,它对我来说很好 如果我把这个标签" " 在头部,而不是它会起作用,但我了解到正确的方法是在 functions.php 中插入 wp_head 并制作 wp_enqueue_style以上是关于Wordpress 文件 functions.php 未加载 style.css的主要内容,如果未能解决你的问题,请参考以下文章