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!