Se você verificar a origem de 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 seu principal objetivo é obter o caminho "calculado" para o método do sistema de arquivos. Por exemplo, com o FTP, o caminho da raiz da conta FTP pode ser mais profundo / mais baixo na raiz do documento atual . Outros métodos também podem não funcionar com apenas ABSPATH
, daí a find_folder()
call (que na verdade é um wrapper para search_for_folder()
que faz o trabalho real).
Por isso você viu algo como:
$plugin_path = str_replace(ABSPATH, $wp_filesystem->abspath(), MY_PLUGIN_DIR);
... pois MY_PLUGIN_DIR
terá sido construído (em algum momento) com base em ABSPATH
, mas dentro do contexto da API do sistema de arquivos esse caminho pode ser inválido - portanto, substituímos ABSPATH
pelo% co_de calculado % antes de escrever.