Я пытаюсь записать в файл XML в папке загрузки в моем каталоге Wordpress. Этот XML-файл необходимо обновлять каждый раз, когда клиент обновляет или создает новое сообщение с использованием созданного мной пользовательского post_type.
Вот код:
<?
add_action( 'save_post', 'producers_xml' );
function producers_xml(){
if ($_POST['post_type'] == 'producer')
{
$xml = new SimpleXMLElement('<xml/>');
$producers = get_posts( array( 'post_type'=>'producer', 'numberposts'=>-1 ) );
$xml->addChild('producers');
foreach($producers as $i=>$producer){
$name = get_the_title($producer->ID);
$owner = get_post_meta($producer->ID, '_producer_contact_name', true);
$phone = get_post_meta($producer->ID, '_producer_phone', true);
$fax = get_post_meta($producer->ID, '_producer_fax', true);
$email = get_post_meta($producer->ID, '_producer_email', true);
$website = get_post_meta($producer->ID, '_producer_website', true);
$address = get_post_meta($producer->ID, '_producer_address', true);
$xml->producers->addChild('producer');
$xml->producers->producer[$i]->addChild('name', $name);
$xml->producers->producer[$i]->addChild('owner', $owner);
$xml->producers->producer[$i]->addChild('phone', $phone);
$xml->producers->producer[$i]->addChild('fax', $fax);
$xml->producers->producer[$i]->addChild('email', $email);
$xml->producers->producer[$i]->addChild('website', $website);
$xml->producers->producer[$i]->addChild('address', $address);
}
$file = '../../../uploads/producers.xml';
$open = fopen($file, 'w') or die ("File cannot be opened.");
fwrite($open, $xml->asXML());
fclose($open);
}
}
?>
Проблема, с которой я сталкиваюсь, заключается в том, что она продолжает давать мне «Файл не может быть открыт». ошибка, которую я поставил. Моя папка для загрузки (и все вложенные элементы) имеют полные права (777). Я тестировал свой код локально, и он работает, но я не могу заставить его открыть этот файл на удаленном сервере. У меня нет root-доступа к нему, поэтому я не могу изменить разрешения ни для чего до httpdocs.
Следует также отметить, что на сервере включена функция fopen.
РЕДАКТИРОВАТЬ: allow_url_fopen включен, но allow_url_include отключен.
Кто-нибудь знает, в чем моя проблема?
Спасибо