admin管理员组文章数量:1414934
I have a plugin and I am creating a css file in wp_content.
I used this:
$this->content_dir = WP_CONTENT_DIR . "/some_folder";
$path = $this->content_dir . 'options.css';
$css='some string';
global $wp_filesystem;
if(!$wp_filesystem->put_contents( $path, $css, 0644) ) {
return __('Failed to create css file');
}
However I get this error:
Fatal error: Call to a member function put_contents() on a non-object
var_dump($css)
return string.
Does put_contents write to an existing file or does it create a file like file_put_contents
does?
I am looking for an equivalent of this:
if(!file_put_contents($path, $css)){
return __('Failed to create css file');
};
Thank you!
I have a plugin and I am creating a css file in wp_content.
I used this:
$this->content_dir = WP_CONTENT_DIR . "/some_folder";
$path = $this->content_dir . 'options.css';
$css='some string';
global $wp_filesystem;
if(!$wp_filesystem->put_contents( $path, $css, 0644) ) {
return __('Failed to create css file');
}
However I get this error:
Fatal error: Call to a member function put_contents() on a non-object
var_dump($css)
return string.
Does put_contents write to an existing file or does it create a file like file_put_contents
does?
I am looking for an equivalent of this:
if(!file_put_contents($path, $css)){
return __('Failed to create css file');
};
Thank you!
Share Improve this question edited Jun 8, 2015 at 5:29 s_ha_dum 65.6k13 gold badges84 silver badges174 bronze badges asked Jan 17, 2014 at 22:13 ToniqToniq 4476 silver badges15 bronze badges 5 |2 Answers
Reset to default 9Initialize the WP filesystem and no more using file_put_contents function. Try this:
[...]
global $wp_filesystem;
// Initialize the WP filesystem, no more using 'file-put-contents' function
if (empty($wp_filesystem)) {
require_once (ABSPATH . '/wp-admin/includes/file.php');
WP_Filesystem();
}
if(!$wp_filesystem->put_contents( $path, $css, 0644) ) {
return __('Failed to create css file');
}
require_once( ABSPATH . 'wp-admin/includes/file.php' ); // you have to load this file
global $wp_filesystem;
$upload_dir = wp_upload_dir(); // Grab uploads folder array
$dir = trailingslashit( $upload_dir['basedir'] ) . 'cutomizer-css/'; // Set storage directory path
WP_Filesystem(); // Initial WP file system
$wp_filesystem->mkdir( $dir ); // Make a new directory folder if folder not their
$wp_filesystem->put_contents( $dir . 'news24-customize.css', $css, 0644 ); // Finally, store the file :D
Add above code in functions.php. After that enqueue that style
$uploads = wp_upload_dir();
wp_enqueue_style( 'newstweentyfour-customize', trailingslashit($uploads['baseurl']) . 'newstweentyfour-customize.css', array() );
Its works i have tested..
本文标签: wp filesystemCall to a member function putcontents() on a nonobject
版权声明:本文标题:wp filesystem - Call to a member function put_contents() on a non-object 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745147844a2644780.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
var_dump($wp_filesystem);
. What do you get? – s_ha_dum Commented Jan 17, 2014 at 23:37