Descobri que este lugar era uma boa fonte de informações no passado, através de muitos estudos no Google sobre os problemas que encontrei. Minha pergunta diz respeito às regras detalhadas de reescrita que o WordPress usa.
Eu configurei um tipo de postagem personalizado chamado projeto e registrei uma taxonomia personalizada chamada projetos . Tudo funciona muito bem, exceto pelas opções de reescrita de lesmas, pois elas acabam em conflito - provavelmente devido às regras de reescrita.
Basicamente, esta é a estrutura que pretendo alcançar:
example.com/work/%taxonomy%/%post_name%/
(para postagens)example.com/work/%taxonomy%/
(listar postagens pertencentes a um termo de taxonomia específico)example.com/work/
(acesse page-work.php, que inclui taxonomy.php, para listar todas as postagens associadas a essa taxonomia)
Aqui está o código que tenho até agora, mas preciso de ajuda para escrever as regras WP_Rewrite, já que este é o bit em que estou um pouco perplexo.
$labels = array(
'name' => _x('Projects', 'post type general name'),
'singular_name' => _x('Project', 'post type singular name'),
'add_new' => _x('Add New', 'project item'),
'add_new_item' => __('Add New Project'),
'edit_item' => __('Edit Project'),
'new_item' => __('New Project'),
'view_item' => __('View Project'),
'search_items' => __('Search Projects'),
'not_found' => __('Nothing found'),
'not_found_in_trash' => __('Nothing found in Trash'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'hierarchical' => true,
'rewrite' => array('slug'=>'work', 'with_front'=>false),
'show_ui' => true,
'_builtin' => false, // It's a custom post type, not built in!
'capability_type' => 'post',
'query_var' => "project", // This goes to the WP_Query schema
'menu_position' => null,
'supports' => array('title','editor','thumbnail', 'comments', 'author', 'excerpt')
);
register_post_type('project' , $args);
// Showcase Taxonomy
register_taxonomy('projects', array('project'), array(
'public' => true,
'hierarchical' => true,
'label' => 'Project Categories',
'singular_label' => 'Project Category',
'query_var' => true,
'rewrite' => array('slug'=>'work', 'with_front'=>false, 'hierarchical'=>true)
)
);
Muito obrigado pela sua ajuda! :-)
Respostas:
Espero que isso possa resolver seu problema
o que você precisa criar é archive-work.php (seu arquivo de tipo de postagem) e taxonomy.php, que será usado para mostrar seu arquivo de taxonomia personalizado.
fonte
Eu tive o mesmo problema e, depois de muita luta, acabei com essa solução.
Basta adicionar isso ao seu código
fonte
functions.php
nesse caso. O código para um plugin e um tema é exatamente o mesmo, a única diferença é em temas que sempre acontece emfunctions.php
ou um arquivo incluídos nofunctions.php
after_switch_theme
gancho, é novo no 3.3 (IIRC).Uma explicação mais detalhada está em outro post , mas aqui estão as partes básicas que você precisa adicionar:
Registre suas taxonomias e cpt's como você faz. Verifique se a lesma reescrita do taxo é "basename" e se a reescrita slug do cpt é "basename /% tax_name%".
Diga ao wordpress o que fazer com "% tax_name%" assim:
fonte