为了账号安全,请及时绑定邮箱和手机立即绑定

将 fopen/fwrite 转换为 WordPress WP_Filesystem

将 fopen/fwrite 转换为 WordPress WP_Filesystem

PHP
回首忆惘然 2022-07-16 09:47:17
我在我的主题中使用来自Easy Theme Child插件的代码,但主题检查插件失败并出现以下错误:WARNING: fopen/fwrite was found in the file grtsth-easy-child-theme-resources.php and resources.php File operations should use the `WP_Filesystem` methods instead of direct PHP filesystem calls.所以我尝试转换问题代码:$create_style_css    = fopen( $file_style_css, 'w+' );$create_function_php = fopen( $file_function_php, 'w+' );fwrite( $create_style_css, $stylesheet_data );fwrite( $create_function_php, $function_php_data );至:WP_Filesystem();global $wp_filesystem;$create_style_css    = $wp_filesystem->get_contents($file_style_css);$create_function_php = $wp_filesystem->get_contents($file_function_php);$wp_filesystem->put_contents($create_style_css, $stylesheet_data);$wp_filesystem->put_contents($create_function_php, $function_php_data);但是,它不起作用。没有错误。只是不创建子主题文件。我不是很熟悉WP_Filesystem,所以有什么想法我做错了吗?谢谢
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

(这更像是一个评论而不是一个答案 - 还不能评论!)

对于许多用户来说,这是一个可以忽略的警告。您的主题将继续正常运行。

警告只是说主题是以网络服务器用户身份读取/写入文件,而 WP Filesystem 可以利用其他文件操作方法,这在某些情况下是有益的。

我不会费心尝试将读/写操作更改为 WP Filesystem,尤其是如果您不打算将代码部署到广泛的环境中(我假设您只是在谈论一个网站)。

但是,如果你真的想继续......

在继续进行文件操作之前,您需要设置/获取访问凭据。

请参阅此方便的分步指南:https ://www.sitepoint.com/introduction-to-the-wordpress-filesystem-api/


查看完整回答
反对 回复 2022-07-16
?
慕容708150

TA贡献1831条经验 获得超4个赞

您需要首先包含 wp_filesystem 函数并请求凭据(如果之前未使用 wp_filesystem 对象)。检查下面的代码以获取详细信息:


global $wp_filesystem;

if ( ! is_a( $wp_filesystem, 'WP_Filesystem_Base') ){

    include_once(ABSPATH . 'wp-admin/includes/file.php');

    $creds = request_filesystem_credentials( site_url() );

    wp_filesystem($creds);

}

$create_style_css = $wp_filesystem->get_contents($url);


查看完整回答
反对 回复 2022-07-16
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信