Как заставить WordPress генерировать пользовательский XML-файл (не карту сайта), который обновляется только при публикации нового контента?
Мне нужна не карта сайта, а XML-файл, который сможет использовать Flash-меню. Но я не хочу генерировать XML при каждом посещении страницы — нужен статический файл для скорости. Хочу, чтобы WordPress обновлял этот файл только при публикации нового контента (не комментариев).
Есть ли в WordPress встроенные возможности для этого? Или может есть плагины? Еще раз подчеркну — мне нужен не sitemap, а конкретный список элементов. Сейчас я использую шаблоны страниц с пользовательскими циклами, но генерация занимает слишком много времени.

Взгляните на функцию export_wp.
Создайте её копию и оставьте только то, что вам нужно экспортировать, затем запускайте эту функцию каждый раз при сохранении записи: add_action('save_post', 'my_export_wp');
(Настройте функцию так, чтобы она отправляла вывод в XML-файл)

Хм... не уверен, есть ли в WordPress специальные функции для создания файлов. Есть wp_handle_upload, но я не уверен, как её можно использовать в данном контексте.
В зависимости от конфигурации сервера, вы, вероятно, можете просто использовать fopen и fwrite для этого.
Оставьте код, который вы используете сейчас (с вашими пользовательскими циклами... я предполагаю, что они содержат XML-разметку, которую вы хотите), но пусть он формирует вывод в виде строки. Затем сохраните эту строку в файл. Что-то вроде:
// Формируем содержимое файла в виде строки
$file_contents = '<?xml version="1.0" ?><yourroot><item>некоторый контент</item></yourroot></xml>';
// Открываем или создаем файл (в той же директории, что и скрипт)
$my_file = fopen("myfile.xml", "w");
// Записываем содержимое строки в файл
fwrite($my_file, $file_contents);
// Закрываем файл
fclose($my_file);
Конечно, всё это зависит от конфигурации сервера и прав доступа. Возможно, у кого-то есть лучшее решение с использованием только нативных функций WordPress.

часть "сформировать вывод в виде строки" мне не совсем понятна. Должен ли я указать URL как $file_contents = http://blog.com/sitetemplate

как сделать так, чтобы этот файл вызывался каждый раз, когда кто-то публикует запись?

а! получил ответ на этот вопрос. Теперь мой единственный вопрос: можно ли задать путь сохранения? чтобы я мог выбрать директорию, в которую сохраняется файл?

Конечно. fopen должен уметь принимать полный локальный путь (например, var/www/html/ваша_папка_сайта/другая_папка/ваш_файл.xml). Разумеется, это будет зависеть от наличия правильных прав на запись в эту папку.

вы можете сделать это с помощью одной функции: file_put_contents(); - http://php.net/manual/en/function.file-put-contents.php
