Taxonomias personalizada
Criar taxonomias personalizadas no Odin é bem simples ao utilizar a class Odin_Taxonomy
.
Instalação
Adicione a seguinte linha no functions.php
de seu tema:
require_once get_template_directory() . '/core/classes/class-taxonomy.php';
Criando Custom Taxonomies
$video = new Odin_Taxonomy(
'Categoria', // Nome (Singular) da nova Taxonomia.
'categoria', // Slug do Taxonomia.
'post' // Nome do tipo de conteúdo que a taxonomia irá fazer parte.
);
2
3
4
5
Com apenas isso é possível criar um Taxonomia do tipo "categoria" que ira ter os seguintes argumentos:
$args = array(
'labels' => $labels,
'hierarchical' => true,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => true,
);
2
3
4
5
6
7
8
9
Configurando os títulos ($labels)
É possível alterar os $labels
utilizando o método set_labels()
:
$video->set_labels(
array(
'menu_name' => __( 'Tipos de vídeo', 'odin' )
)
);
2
3
4
5
São aceitos todos os $labels
da função register_taxonomy()
.
Configurando os argumentos
Configure os argumentos utilizando método set_arguments()
:
$video->set_arguments(
array(
'hierarchical' => false
)
);
2
3
4
5
No exemplo acima o "hierarchical" foi alterado para false
, desta forma a nossa taxonomia terá o formato de "tags".
Você pode utilizar isso para adicionar ou alterar qualquer argumento do Taxonomia.
São aceitos todos os argumentos da função register_taxonomy()
.
Exemplo completo
Exemplo de como utilizar e funcionar corretamente as traduções:
function odin_video_taxonomy() {
$video = new Odin_Taxonomy(
'Categoria', // Nome (Singular) da nova Taxonomia.
'categoria', // Slug do Taxonomia.
'post' // Nome do tipo de conteúdo que a taxonomia irá fazer parte.
);
$video->set_labels(
array(
'menu_name' => __( 'Tipos de vídeo', 'odin' )
)
);
$video->set_arguments(
array(
'hierarchical' => false
)
);
}
add_action( 'init', 'odin_video_taxonomy', 1 );
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Código fonte
Odin_Taxonomy
esta localizado em core/classes/class-taxonomy.php
.