He encontrado que este lugar es una buena fuente de información en el pasado a través de buscar en Google muchos de los problemas con los que me he encontrado. Mi pregunta se refiere a las reglas detalladas de reescritura que usa WordPress.
He configurado un tipo de publicación personalizado llamado proyecto , y he registrado una taxonomía personalizada llamada proyectos . Todo funciona muy bien, excepto las opciones de reescritura de slug, ya que terminan en conflicto, probablemente debido a las reglas de reescritura.
Básicamente esta es la estructura que estoy buscando lograr:
example.com/work/%taxonomy%/%post_name%/
(para publicaciones)example.com/work/%taxonomy%/
(enumere las publicaciones que pertenecen a un término de taxonomía particular)example.com/work/
(va a page-work.php que incluye taxonomy.php para enumerar todas las publicaciones asociadas con esa taxonomía)
Aquí está el código que tengo hasta ahora, pero necesito ayuda para escribir las reglas WP_Rewrite ya que este es el bit en el que estoy un poco perplejo.
$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)
)
);
¡Muchas gracias por su ayuda! :-)
Respuestas:
Espero que esto pueda resolver tu problema
lo que necesita crear es archive-work.php (su archivo de tipo de publicación) y taxonomy.php que usará para mostrar su archivo de taxonomía personalizado.
fuente
Tuve el mismo problema y después de muchas dificultades terminé con esta solución.
Solo agregue esto a su código
fuente
functions.php
en ese caso. El código para un complemento y un tema es exactamente el mismo, la única diferencia está en los temas en los que siempre vafunctions.php
o en un archivo incluidofunctions.php
after_switch_theme
gancho, es nuevo en 3.3 (IIRC).Una explicación más detallada se encuentra en otra publicación , pero aquí están las partes básicas que debe agregar:
Registre sus taxonomías y cpt como lo hace. Asegúrese de que su ficha de reescritura para el taxo sea "basename" y que la ficha de reescritura para el cpt sea "basename /% tax_name%".
Dile a wordpress qué hacer con "% tax_name%" de esta manera:
fuente