2015-10-23 3 views
1

Я работаю над темой wordpress. Он почти завершен. Когда я проверить его в теме-проверки плагин он дает предупреждениеКогда я меняю файл_get_contents на WP_Filesystem, он не работает

WARNING: file_get_contents was found in the file sources.php File operations 
should use the WP_Filesystem methods instead of direct PHP filesystem calls. 
Line 84: $fonts = file_get_contents(dirname(__FILE__) . '/gwf.json'); 

Тогда я изменить file_get_contents к WP_Filesystem но не получить значение или не работает.

Вот код строки 84:

function vp_get_gwf_family() 
{ 
    $fonts = file_get_contents(dirname(__FILE__) . '/gwf.json'); 
    $fonts = json_decode($fonts); 

    $fonts = array_keys(get_object_vars($fonts)); 

    foreach ($fonts as $font) 
    { 
     $result[] = array('value' => $font, 'label' => $font); 
    } 

    return $result; 
} 
+0

Делитесь своим новым кодом, который не работает? Глядя на документацию [WP_filesystem] (https://codex.wordpress.org/Filesystem_API), ее класс не является функцией. Поэтому его не просто заменить. API позволяет FTP-файлам изменять файлы, если сервер, на котором работает этот код, предназначен не для того, чтобы позволить php делать изменения файла. – Practically

+0

Я читал в блоге, который говорит, что заменяет file_get_contents на WP_Filesystem [Здесь] (http://www.wrock.org/resolve-wordpress-theme-check-issue/) –

ответ

0

У меня были проблемы с wp_filesystem из-за настроек безопасности на сервере и в конечном итоге изменения:

global $wp_filesystem; 
    $file = $wp_filesystem->get_contents(get_template_directory() . '/assets/js/icomoon-selection.json'); 

к:

ob_start(); 
    include dirname(__FILE__) .'/../assets/js/icomoon-selection.json'; 
    $file = ob_get_contents(); 
    ob_end_clean(); 

Возможно, он решает ваши предупреждения (пример использования файловой системы wp или обходной путь).

Смежные вопросы