Close

Adicionar campos aos termos de taxonomia

Adicionar campos aos termos de taxonomia

  1. Campos na tela Adicionar novo termo
  2. Campos na tela editar termo
  3. Salvar campos

Hoje, o WordPress tem suporte a meta-campo para quase tudo – tipos de postagem, usuários, comentários, blogs em uma rede multi-site e, sim, termos de taxonomia.

Capturas de tela do que vamos criar:

Simple text field on add new term screen in WordPress admin area
Vamos criar um campo de texto simples e é assim que ele será adicionado ao adicionar novas páginas de termos.
We added a custom text field and populated it with the data on edit term screen
É assim que nosso campo será exibido nas páginas de edição de termos.

1. Adicione campos à tela Adicionar novo termo

Para adicionar os campos na tela “Adicionar novo”, usaremos um gancho de ação {Taxonomy}_add_form_fieldse tudo o que precisamos fazer é ecoar os campos.

add_action( 'post_tag_add_form_fields', 'misha_add_term_fields' );
 
function misha_add_term_fields( $taxonomy ) {
 
	echo '<div class="form-field">
	<label for="misha-text">Text Field</label>
	<input type="text" name="misha-text" id="misha-text" />
	<p>Field description may go here.</p>
	</div>';
 
}
  • Decidi adicionar um campo à post_tagtaxonomia, então meu gancho de ação é post_tag_add_form_fields. Mas você pode usar qualquer nome de taxonomia personalizado aqui.
  • O nome da taxonomia como $taxonomyvariável está disponível dentro da função.
  • Não se esqueça de quebrar o campo dentro de uma classe divwith form-field.

Resultado:

Simple text field on add new term screen in WordPress admin area
Podemos adicionar campos à página Adicionar nova tag com post_tag_add_form_fieldsgancho de ação.

2. Adicione campos à tela Editar termo

Muito semelhante à parte anterior do tutorial, a principal diferença é que precisamos preencher o campo caso os metadados sejam apresentados.

Vamos começar com um gancho de ação {Taxonomy}_edit_form_fields. Para post_tagtaxonomia, será post_tag_edit_form_fields, para sua taxonomia customizada misha_taxonomy_edit_form_fields.

add_action( 'post_tag_edit_form_fields', 'misha_edit_term_fields', 10, 2 );
 
function misha_edit_term_fields( $term, $taxonomy ) {
 
	$value = get_term_meta( $term->term_id, 'misha-text', true );
 
	echo '<tr class="form-field">
	<th>
		<label for="misha-text">Text Field</label>
	</th>
	<td>
		<input name="misha-text" id="misha-text" type="text" value="' . esc_attr( $value ) .'" />
		<p class="description">Field description may go here.</p>
	</td>
	</tr>';
 
}
  • A função possui dois parâmetros: $term– que é um objeto de termo editado atualmente, $taxonomy– nome da taxonomia.
  • Estamos usando a get_term_meta()função aqui para obter o termo metadados.
  • Não esqueça de escapar dos dados que você obtém do banco de dados.

E nós temos:

We added a custom text field and populated it with the data on edit term screen
Podemos adicionar campos à página Editar tag com post_tag_edit_form_fieldsgancho de ação.

3. Salvar campos

O último passo é salvar os valores de nossos campos no banco de dados. Adivinha o quê – também temos dois ganchos de ação para isso –  created_{Taxonomy}edited_{Taxonomy}. Felizmente, podemos conectar a mesma função de retorno de chamada a ambos.

add_action( 'created_post_tag', 'misha_save_term_fields' );
add_action( 'edited_post_tag', 'misha_save_term_fields' );
 
function misha_save_term_fields( $term_id ) {
 
	update_term_meta(
		$term_id,
		'misha-text',
		sanitize_text_field( $_POST[ 'misha-text' ] )
	);
 
}

É isso aí.

Não é tão difícil, mas abaixo vou mostrar uma maneira ainda mais simples de criar campos de termos de taxonomia!