Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the hustle domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114
Como utilizar wp_is_writable() no WordPress - Daniel Kossmann

Com a função PHP wp_is_writable() você verifica se um diretório tem permissão de escrita, retornando um valor booleano (true ou false). O seu uso é bem simples:

<?php
$permissao_escrita = wp_is_writable( $caminho_diretorio );Code language: PHP (php)

A vantagem de utilizar esta função do WordPress em vez da função is_writable() nativa do PHP, é que ela possui uma verificação especial para resolver alguns problemas de verificação de permissão de arquivos (ACL) que ocorrem principalmente em servidores Windows. Para isso, é adicionalmente chamado a função PHP win_is_writable(), criada pelo WP.

Utilizando a função wp_is_writable() para verificar se há permissão de escrita em um diretório antes de criar um arquivo

Segue abaixo um exemplo que verifica a permissão da pasta antes de criar um arquivo nela, utilizando como base o código que escrevi para a função PHP get_temp_dir():

<?php
$permissao_escrita = wp_is_writable( $caminho_diretorio );

if ( $permissao_escrita ) {

	$arquivo = trailingslashit( $caminho_diretorio ) . "painelwp.txt"; 
	
	$conteudo = "O PainelWP é uma newsletter semanal sobre WordPress.";
	
	$abre_arquivo = fopen( $arquivo, "a" );
	
	if ( $abre_arquivo ) {
	
		$escreve_arquivo = fwrite( $abre_arquivo, $conteudo ); 
		
		if ( $escreve_arquivo ) {
			fclose( $abre_arquivo );
			echo "Arquivo criado com sucesso.";
		} else {
			echo "Arquivo não pode ser criado.";
		}
	
	} else {
		echo "Arquivo não pode ser aberto.";
	}
} else {
	echo "A pasta não tem permissão de escrita.";
}Code language: PHP (php)

Uma curiosidade: a função get_temp_dir() já possui a validação do wp_is_writable().



Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *