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';
1

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.
);
1
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,
);
1
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' )
    )
);
1
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
    )
);
1
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 );
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.