Как задать путь с файловой системой WP и базой ftp/chroot
В своей теме я буду использовать WP_Filesystem для записи файла, например:
$file = get_template_directory().'/library/assets/css/wpless2css.css';
, который выводит что-то вроде /home/user/domain/http_docs/wp-contents/theme/mytheme/library/assets/css/wpless2css.css
Это будет работать, если только пользователь ftp не будет привязан к /home/user/domain/
(на некоторых серверах?).
В случае chroot файловая система WP_Filesystem не может найти $file
.
Решение, по-видимому, определяет FTP_PATH
в wp-config.php в /home/user/domain/
и используйте:
if(FTP_BASE) $file = str_replace(FTP_BASE,'',get_template_directory()).'/library/assets/css/wpless2css.css';
Я ищу более надежное решение и поддержку для различных возможных системы разрешений.
1 answers
После изменения FTP_BASE
в моем wp-config
я обнаружил, что функция обновления WP нарушена. Затем я понимаю, что функция обновления работает точно так же и не нуждается в каких-либо дополнительных настройках.
В wp-admin/includes/update-core.php
я нашел использование $wp_filesystem->wp_content_dir()
. Это тоже решает мою проблему.
На http://xref.wordpress.org/branches/3.8/WordPress/Filesystem/WP_Filesystem_Base.html вы найдете список возможных полезных функций:
string wp_content_dir ()
string wp_lang_dir ()
string wp_plugins_dir ()
string wp_themes_dir ([string $theme = false])
На самом деле @otto дал мой ответ ранее ( Используя wp_filesystem в Плагины), здесь он написал:
При использовании $wp_filesystem есть удобный вызов функции для получения пути к каталогу содержимого: $wp_filesystem->wp_content_dir();. Вам необходимо использовать эту функцию, потому что путь к "удаленному" каталогу может отличаться от пути к "локальному" каталогу.