O que exatamente $ wp_filesystem-> abspath () retorna?

O problema real que tenho ao usar o $wp_filesystem está definindo os caminhos corretos. Na documentação do sistema de arquivos, o caminho (por exemplo, para o diretório de plugins) geralmente é definido como este: $plugin_path = str_replace(ABSPATH, $wp_filesystem->abspath(), MY_PLUGIN_DIR);

Eu tentei entender isso, mas eu falhei porque não consegui descobrir o que $wp_filesystem->abspath() deveria realmente retornar. Quando eu var_dump() eu fico false . Alguém poderia me explicar por que não podemos simplesmente usar a variável ABSPATH em funções como $wp_filesystem->put_contents() ?

Solutions Collecting From Web of "O que exatamente $ wp_filesystem-> abspath () retorna?"

Se você verificar a origem do abspath() :

 public function abspath() { $folder = $this->find_folder(ABSPATH); // Perhaps the FTP folder is rooted at the WordPress install, Check for wp-includes folder in root, Could have some false positives, but rare. if ( ! $folder && $this->is_dir( '/' . WPINC ) ) $folder = '/'; return $folder; } 

… você verá que o objective principal é obter o caminho “calculado” para o método do sistema de arquivos. Por exemplo, com FTP, o caminho raiz da conta FTP pode ser mais profundo / mais baixo na raiz do documento real . Outros methods também não podem funcionar com apenas ABSPATH , daí a chamada find_folder() (que é realmente um wrapper para search_for_folder() que faz o trabalho real).

Por isso, por que você viu algo como:

 $plugin_path = str_replace(ABSPATH, $wp_filesystem->abspath(), MY_PLUGIN_DIR); 

… desde que MY_PLUGIN_DIR tenha sido construído (em algum ponto) com base em ABSPATH , mas, dentro do contexto da API do sistema de arquivos, esse caminho pode ser inválido – então substituímos ABSPATH pelo abspath() calculado abspath() antes de escrever.