Создание каталога и файла с использованием собственной файловой системы wordpress


Я создаю каталог и файл css, используя обычный метод php. Вот оно

$upload_dir = wp_upload_dir();
$dirpath = $upload_dir['basedir'] . '/dynamic/';
$filepath = $dirpath. 'dynamic.css';

if( !file_exists($filepath) ){
  mkdir($dirpath);
  $fh = fopen($filepath, "w");
  fclose($fh);
}

Но я хочу использовать собственную файловую систему wp.Я пробовал

if(!$wp_filesystem->is_dir( $dirpath) 
 {
   $wp_filesystem->mkdir( $dirpath);
 }

Теперь как я могу создать файл dynamic.css?

Author: Pieter Goosen, 2015-09-20

1 answers

Мне довольно трудно пройти через это. Но вы можете следовать этому.

1. Сначала давайте проверим папку, если она существует, мы больше не будем ее выполнять.

    if ( file_exists(trailingslashit(WP_PLUGIN_DIR).'demo' ) ) {
    exit;
     }

2. Теперь мы получим учетные данные

    if (false === ($creds = request_filesystem_credentials($url, $method, false,    false, $form_fields) ) ) {
    return true;
      }

3. Если у нас нет разрешения на запись файла, попросите его

    if ( ! WP_Filesystem($creds) ) {
    // our credentials were no good, ask the user for them again
    request_filesystem_credentials($url, $method, true, false, $form_fields);
    return true;
    }

4.Все хорошо, теперь давайте создадим каталог

    global $wp_filesystem;
    $plugdir = $wp_filesystem->wp_plugins_dir() .'demo';

5. Теперь мы создадим php-переменные или включим файл

    $header = <<<END
    <?php
   /*
   Your data variable. You can use include or require for separate file
    */
    END;

6. Наша последняя часть

    $plugfile = trailingslashit($plugdir).'style'.'.css';

if ( ! $wp_filesystem->put_contents( $plugfile, $header, FS_CHMOD_FILE) ) {
    echo 'Failed';
    }
    return true;

Вы можете обернуть весь блок в функции и выполните его с помощью подходящих крючков. Надеюсь, это поможет

 0
Author: ashraf, 2015-10-09 20:38:05