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 thefunctions.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.phpstyle.cssfunctions.phpfooter.phpheader.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的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的wordpress总是能上传所有类型文件?

wordpress - 错误 403 文件 javascript 插件 wordpress

wordpress 插件应该放在哪个目录文件下面?

XAMPP 中的 wordpress 文件夹在哪里?

在 wordpress 中归档文件

sh 修复wordpress文件和目录权限#WordPress #console