Php 试图在wordpress uploads文件夹中生成CSS文件

Php 试图在wordpress uploads文件夹中生成CSS文件,php,wordpress,upload,Php,Wordpress,Upload,当用户保存一些自定义字段的值时,我想在wordpress uploads文件夹中动态创建一个文件。这是我尝试的,但不会写入文件: function generate_options_css() { $upload_dir = wp_upload_dir(); $ss_dir = get_stylesheet_directory(); ob_start(); // Capture all output into buffer require($ss_dir . '/

当用户保存一些自定义字段的值时,我想在wordpress uploads文件夹中动态创建一个文件。这是我尝试的,但不会写入文件:

function generate_options_css() {
    $upload_dir = wp_upload_dir();
    $ss_dir = get_stylesheet_directory();
    ob_start(); // Capture all output into buffer
    require($ss_dir . '/custom-styles.php'); // Grab the custom-style.php file
    $css = ob_get_clean(); // Store output in a variable, then flush the buffer
    file_put_contents($upload_dir . '/custom-styles.css', $css, LOCK_EX); // Save it as a css file
}
add_action( 'acf/save_post', 'generate_options_css' ); //Parse the output and write the CSS file on post save

web用户对目标文件夹有足够的写权限吗?嗯,知道如何授予用户写权限吗。在上一个版本中,我已将文件写入主题文件夹,该文件夹工作正常。这取决于服务器运行的操作系统。每个项目都在另一个共享主机上。请在回答中提供一些有关已修复内容的反馈。如果可能,请努力提供其他解释,而不仅仅是代码。这些答案往往更有用,因为它们帮助社区成员,特别是新开发人员更好地理解解决方案的推理,并有助于防止需要解决后续问题。
function my_custom_css() {
$upload_dir = wp_upload_dir(); 
$base_dir = wp_get_upload_dir(); 
$styles = wp_get_custom_css();
if ( $styles || is_customize_preview() ) :
$type_attr = current_theme_supports( 'html5', 'style' ) ? '' : ' type="text/css"';

$file = file_put_contents($upload_dir['basedir']."/new-style-function.css", strip_tags( $styles ) );
move_uploaded_file($file, $upload_dir['baseurl']);

endif;
}

add_action( 'save_post', 'my_custom_css' );

$upload_path = wp_upload_dir(); 
wp_enqueue_style ('custom-style',$upload_path['baseurl'] .'/new-style-function.css');