Repository: seatonjiang/kratos (language: php)

Issue:
升级到4.1.4 后，后台报错，用的是子主题
报错如下：
Warning: filemtime(): stat failed for /wp-content/themes/kratos-child-kratos-main-child/assets/css/admin.css in /wp-content/themes/kratos-main/inc/theme-core.php on line 120


Discussion / hints:
如果改回母主题，就没有这个问题，只有启用子主题的时候才出现。
主题怎么还分母子？
> 主题怎么还分母子？

子主题child theme，你可以百度了解一下。
您的子主题中有这个`assets/css/admin.css`文件吗，子主题是叫kratos-child-kratos-main-child吗
@n0099 
您好，子主题没有这个文件，子主题的名字没有错。
然后我刚才把这个文件从母主题复制了一份到子主题下面，现在已经不出现那个错误提示了。 

谢谢！
我这里无法复现


根据https://github.com/seatonjiang/kratos/blob/dc88428c960dcfa77fc7ad7ef0fb59203e0732a4/inc/theme-core.php#L120
这里混用了get_template（取父主题）和get_stylesheet（取子主题）
https://developer.wordpress.org/reference/functions/get_stylesheet_directory/
如果需要允许子主题修改`assets/css/admin.css`并让这里读取修改后的子主题的admin.css，应该全部使用get_stylesheet
如果不需要读取子主题修改后的admin.css，应该全部使用get_template
总之不应该混用，因为子主题中不一定存在`assets/css/admin.css`（也就是这个issue的原因）
> 我这里无法复现

其实可以复现，只是我的phpfpm的php.ini中设置error_reporting静默掉E_WARNING了
但会在nginx error log里刷

Fix patch:
diff --git a/inc/theme-core.php b/inc/theme-core.php
index 5e82b10..bf8986f 100644
--- a/inc/theme-core.php
+++ b/inc/theme-core.php
@@ -117,7 +117,7 @@ function theme_autoload()
 // 后台资源加载
 function kratos_admin_enqueue()
 {
-    wp_enqueue_style('admin-custom-css', get_template_directory_uri() . '/assets/css/admin.css', array(), filemtime(get_stylesheet_directory() . '/assets/css/admin.css'));
+    wp_enqueue_style('admin-custom-css', get_template_directory_uri() . '/assets/css/admin.css', array(), filemtime(get_template_directory() . '/assets/css/admin.css'));
 }
 
 add_action('admin_enqueue_scripts', 'kratos_admin_enqueue', 20);


Test patch: