尝试创建空 php 文件导致无法打开流权限被拒绝 wordpress
Trying to create empty php file gives failed to open stream permission denied wordpress
我正在尝试以编程方式在活动主题文件夹中创建自定义模板文件并将其分配给 post。我使用 fopen()
和 file_put_contents()
仍然无法创建文件。
这是我的代码:
if(isset($params["template_url"])){
$basename = basename($params["template_url"]);
if(!file_exists(get_stylesheet_directory()."/".$basename)){ // check if file not exist
file_put_contents(get_stylesheet_directory()."/".$basename, unserialize($params["template_content"]));
//$template_file = fopen(get_stylesheet_directory()."/".$basename, "a+");
if(file_exists(get_stylesheet_directory()."/".$basename)){ // check if file created now
//fwrite($template_file, unserialize($params["template_content"]));
//fclose($template_file);
update_post_meta($post_id,'_wp_page_template',$basename);
}
else{
$error_message .= sprintf(__(' Error in creating template on %s.'),site_url());
}
} else {
update_post_meta($post_id,'_wp_page_template',$basename);
}
}
谁能帮我解决这个问题。从最近 1 天开始,我一直在尝试修复它。
提前致谢。
我终于找到了满足我要求的修复程序,我在这里发帖以防有人遇到同样的情况。我在插件中创建了一个模板文件,而不是在活动主题文件夹中创建文件,并使用下面的代码加载模板。
function my_page_template($page_template){
$slug = 'slug of the page where to load my custom template';
if ( is_page($slug) ) {
$page_template = dirname( __FILE__ ) . '/templates/my-template.php';
}
return $page_template;
}
add_filter( 'page_template', 'my_page_template');
注意:此代码不会在页面的模板列表下拉(模板)选项中列出模板名称。无论从页面的管理面板分配的模板如何,它都会加载自定义模板。
我正在尝试以编程方式在活动主题文件夹中创建自定义模板文件并将其分配给 post。我使用 fopen()
和 file_put_contents()
仍然无法创建文件。
这是我的代码:
if(isset($params["template_url"])){
$basename = basename($params["template_url"]);
if(!file_exists(get_stylesheet_directory()."/".$basename)){ // check if file not exist
file_put_contents(get_stylesheet_directory()."/".$basename, unserialize($params["template_content"]));
//$template_file = fopen(get_stylesheet_directory()."/".$basename, "a+");
if(file_exists(get_stylesheet_directory()."/".$basename)){ // check if file created now
//fwrite($template_file, unserialize($params["template_content"]));
//fclose($template_file);
update_post_meta($post_id,'_wp_page_template',$basename);
}
else{
$error_message .= sprintf(__(' Error in creating template on %s.'),site_url());
}
} else {
update_post_meta($post_id,'_wp_page_template',$basename);
}
}
谁能帮我解决这个问题。从最近 1 天开始,我一直在尝试修复它。
提前致谢。
我终于找到了满足我要求的修复程序,我在这里发帖以防有人遇到同样的情况。我在插件中创建了一个模板文件,而不是在活动主题文件夹中创建文件,并使用下面的代码加载模板。
function my_page_template($page_template){
$slug = 'slug of the page where to load my custom template';
if ( is_page($slug) ) {
$page_template = dirname( __FILE__ ) . '/templates/my-template.php';
}
return $page_template;
}
add_filter( 'page_template', 'my_page_template');
注意:此代码不会在页面的模板列表下拉(模板)选项中列出模板名称。无论从页面的管理面板分配的模板如何,它都会加载自定义模板。