Depois da parte 1 e da parte 2, chegou a hora de mais um post e vídeo com 4 dicas rápidas e meio aleatórias de programação no WordPress. Para esse post, eu peguei as dicas neste post do Paul Underwood. O post original tem mais do que 4 dicas, vale a pena dar uma olhada.

Funções utilitárias para formulários

Dadas duas variáveis, cada uma dessas funções imprime ou retorna o atributo HTML correspondente se os valores forem iguais.

  • selected()
  • checked()
  • disabled()
selected( $selected, $current = true, $echo = true );
checked( $checked, $current = true, $echo = true );
disabled( $disabled, $current = true, $echo = true );
<?php
$valores_possiveis = array( 1, 2, 3, 4, 5 );
$valor_atual       = 2;
?>
<select>
	<?php
	foreach ( $valores_possiveis as $possivel ) {
		?>
		<option value="<?php echo $possivel; ?>" <?php selected( $possivel, $valor_atual ); ?>>
			<?php echo $possivel; ?>
		</option>
		<?php
	}
	?>
</select>
$valores_possiveis = array( 1, 2, 3, 4, 5 );
$valores_atuais    = array( 1, 3, 4 );
foreach ( $valores_possiveis as $possivel ) {
	?>
	<label>
		<input type="checkbox" value="1" name="checkbox" <?php checked( in_array( $possivel, $valores_atuais ) ); ?>>
		<?php echo $possivel; ?>
	</label>
	<?php
}
<input type="text" name="disabled_textbox" <?php disabled( $is_disabled ); ?>>

Criar árvore de diretórios

Trabalhar com manipulação de arquivos pode ser muito chato. Se você precisa criar uma árvore de diretórios, o WordPress ajuda a criar cada um deles. Você só precisa passar o caminho completo para a função wp_mkdir_p():

$uploads          = wp_upload_dir();
$uploads_basedir  = $uploads['basedir'];
$caminho_arquivos = path_join( $uploads_basedir, 'clientes/nome-cliente/documentos' );
// /var/www/html/wp-content/uploads/clientes/nome-cliente/documentos

wp_mkdir_p( $caminho_arquivos );

Nome único para arquivos

Sabe quando você envia um arquivo para o WordPress e ele automaticamente acrescenta um -1 ou -2 no final do nome? Pois é, você pode aproveitar esse recurso no seu código também com a função wp_unique_filename():

$nome_unico_para_o_arquivo = wp_unique_filename( $diretorio, $nome_arquivo );

Exibir tamanho de arquivos

A função size size_format() formata um número de bytes em algo mais fácil de ler. Por exemplo, 1 MB é muito mais fácil de ler do que 1048576 bytes.

size_format( $bytes, $casas_decimais );

// Exemplo:
echo size_format( 1048576, 2 ); // 1,00 MB

Essa função lembra muito a human_readable_duration(), que transforma uma string com a duração de alguma coisa no formato HH:ii:ss em X horas, Y minutos, Z segundos. Tenho quase certeza de que já falei dessa outra função por aqui, mas não lembro onde ¯_(ツ)_/¯


Se você gostou desse conteúdo não se esqueça de assinar o canal e a newsletter aqui do blog!