¿Reescritura de URL de tipo de publicación personalizada?
2 respuestas
- votos
-
- 2012-05-25
Cuando registraeltipo depublicaciónpersonalizada,debeespecificar que la regla de reescriturano debeirprecedida de laestructura de URLexistente.
En resumen,esto significa queesta líneaen su llamada
register_post_type
:'rewrite' => array('slug' => 'projects'),
debería convertirseen esto:
'rewrite' => array('slug' => 'projects','with_front' => false),
Para obtenermásinformación,consulteel argumento
rewrite
de la entrada del códiceenregister_post_type
editar: solo asegúrese de que,después de actualizarel código,elimine las reglas de reescritura visitando Configuración> Enlacespermanentes.De lo contrario,seguirá viendo losenlaces antiguos.
When you register the custom post type, you have to specify that the rewrite rule shouldn't be prepended with the existing URL structure.
In short, this means that this line in your
register_post_type
call:'rewrite' => array('slug' => 'projects'),
should turn into this:
'rewrite' => array('slug' => 'projects','with_front' => false),
For more info, check out the
rewrite
argument from the codex entry onregister_post_type
edit: just make sure that, after updating the code, you flush the rewrite rules by visiting Settings > Permalinks. Otherwise you'll still see the old links.
-
brillantegracias!Solopara aclarar,todo lo quetengo que hacerparaeliminar las reglasesir a lapágina Configuración-> Enlacespermanentes ypresionar "Guardar cambios",¿correcto?brilliant thank you! Just to clarify, all I need to do for flushing rules is to go to the Settings->Permalinks page and hit "Save Changes", correct?
- 0
- 2012-05-25
- Jake
-
Ni siquieranecesitaguardar los cambios.Es suficiente con abrir lapágina de configuración deenlacespermanentes (es decir,si su archivo .htaccessesmodificable. De lo contrario,presioneguardar cambios y copiemanualmenteel código que devuelveen su .htaccess)You don't even need to save changes. It's enough just to open the Permalinks settings page (that is, if your .htaccess file is writable. If not, press save changes and manually copy the code it returns in your .htaccess)
- 4
- 2012-05-25
- 0x61696f
-
Estonoparecefuncionarparamí.Laspublicaciones demisproyectostodavía van a `example.com/projects/title-of-post`.También visité lapágina deenlacespermanentes.¿Quépodríaestar causandoesto?No hay reglas de reescrituraen mi `htaccess`.This doesn't seem to work for me. My projects posts are still going to `example.com/projects/title-of-post`. I visited the Permalinks page too. What could be causing this? There aren't any rewrite rules in my `htaccess`.
- 2
- 2015-01-25
- Desi
-
¡Vaya,graciasesaera laparte quefaltaba!Visitar lapágina deenlacespermanentesnofuncionó,pero solo GUARDAR la configuración actual delenlacepermanentefuncionó :)Wow, thanks that was the missing part! Visiting the permalinks page did not work, but just SAVING the current permalink settings worked :)
- 1
- 2019-02-28
- Alexander Taubenkorb
-
Seguí cambiando las cosas sineliminar las reglas de reescritura.¡Graciasporel consejo!I kept on changing things without flushing the rewrite rules. Thanks for the tip!
- 1
- 2019-11-14
- Tan-007
-
- 2012-05-25
Tuveesteproblema literalmente hace 3 días,luegome encontré con una serieen wp.tutsplus.com . Cambiémi propio códigopara acomodarmejor supregunta,peroestoes con lo queterminé después de seguir la serie. Además,tengaen cuenta queestonoestáprobado.
// sets custom post type function my_custom_post_type() { register_post_type('Projects', array( 'label' => 'Projects','description' => '', 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'hierarchical' => false, 'publicly_queryable' => true, 'rewrite' => false, 'query_var' => true, 'has_archive' => true, 'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'), 'taxonomies' => array('category','post_tag'), // there are a lot more available arguments, but the above is plenty for now )); } add_action('init', 'my_custom_post_type'); // rewrites custom post type name global $wp_rewrite; $projects_structure = '/projects/%year%/%monthnum%/%day%/%projects%/'; $wp_rewrite->add_rewrite_tag("%projects%", '([^/]+)', "project="); $wp_rewrite->add_permastruct('projects', $projects_structure, false);
Teóricamente,podríaintercambiar lo que quieraen la URL almacenadaen la variable
$projects_structure
,lo que hayesexactamente lo queterminé usando.Buena suerte y,como siempre,asegúrate de volver y cuéntanos cómote haido. :)
I had this problem literally 3 days ago, then I stumbled across a series over at wp.tutsplus.com. I swapped my own code out to accommodate your question better, but this is what I ended up with after following the series. Also, keep in mind that this is untested.
// sets custom post type function my_custom_post_type() { register_post_type('Projects', array( 'label' => 'Projects','description' => '', 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'hierarchical' => false, 'publicly_queryable' => true, 'rewrite' => false, 'query_var' => true, 'has_archive' => true, 'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes'), 'taxonomies' => array('category','post_tag'), // there are a lot more available arguments, but the above is plenty for now )); } add_action('init', 'my_custom_post_type'); // rewrites custom post type name global $wp_rewrite; $projects_structure = '/projects/%year%/%monthnum%/%day%/%projects%/'; $wp_rewrite->add_rewrite_tag("%projects%", '([^/]+)', "project="); $wp_rewrite->add_permastruct('projects', $projects_structure, false);
Theoretically, you could swap out whatever you want in the URL stored in the
$projects_structure
variable, what is there is just what I ended up using.Good luck, and as always - make sure to come back and let us know how it worked out! :)
-
Las respuestas que solo se componen deenlacesgeneralmente se consideraninútiles ya queesos recursospueden (yprobablemente dejarán) deexistiren elfuturo.Resumeel contenido.Answers that are just composed of links are generally considered unhelpful as those resources can (and probably will) cease to exist in the future. Summarize the content.
- 1
- 2012-05-25
- chrisguitarguy
-
Muybien,trabajaréen una revisión adecuada.Fair enough, I'll work on a proper revision.
- 0
- 2012-05-25
- cmegown
-
Allí,ahorami respuesta contiene un código similar al código detrabajo quetengoen unentorno deproducción que reescribe con éxito una URL detipo depublicaciónpersonalizada.¡Espero que resultemás útil!There, now my answer contains similar code to working code that I have in a production environment that successfully rewrites a custom post type URL. Hope it proves to be more helpful!
- 11
- 2012-05-25
- cmegown
Configuré untipo depublicaciónpersonalizadapara losproyectos demi cartera.La URLprincipalparaesto seencuentraen
/projects/
Ahoratambién configuréelenlacepermanente de laspublicaciones demi blogen
/articles/*/
para laestructura delenlacepermanente.Esto significa que cuando voy a ver unproyecto de cartera,la URL cambia a/articles/projects/project-name/
Sé que debe haber unamanera de reescribirenlacespermanentes solo paraeltipo depublicaciónpersonalizada demi proyecto.Peronoestoyfamiliarizado con la sintaxispara declararel slug de URL; ¡agradecería cualquier ayuda quepueda obtener!