Riscrittura URL del tipo di post personalizzato?
2 risposta
- voti
-
- 2012-05-25
Quando registriiltipo dipostpersonalizzato,devi specificare che la regola di riscritturanon deveessere anteposta alla struttura dell'URLesistente.
Inbreve,questo significa che questa riganellatua chiamata
register_post_type
:'rewrite' => array('slug' => 'projects'),
dovrebbetrasformarsiin questo:
'rewrite' => array('slug' => 'projects','with_front' => false),
Per ulterioriinformazioni,controlla l'argomento
rewrite
dalla voce del codice suregister_post_type
modifica: assicurati solo che,dopo aver aggiornatoil codice,svuoti le regole di riscrittura visitando Impostazioni> Permalink.Altrimenti vedrai ancorai vecchi link.
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.
-
brillantegrazie!Giustoper chiarire,tutto quello che devofareper le regole di svuotamento è andare allapagina Impostazioni-> Permalinke premere "Salvamodifiche",giusto?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
-
Non ènemmenonecessario salvare lemodifiche.Basta aprire lapagina delleimpostazioni deipermalink (cioè seiltuofile .htaccess è scrivibile. In caso contrario,premi salvamodifichee copiamanualmenteil codice che restituisceneltuo .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
-
Questonon sembrafunzionareperme.Ipost deimiei progetti stanno ancora andando su `example.com/projects/title-of-post`.Ho visitato anche lapagina deipermalink.Che cosapotrebbe causare questo?Non ci sono regole di riscritturanelmio "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
-
Wow,grazie quellaera lapartemancante!Visitare lapagina deipermalinknon hafunzionato,ma solo SALVARE leimpostazioni correnti delpermalink hafunzionato :)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
-
Ho continuato a cambiare le cose senza scaricare le regole di riscrittura.Grazieperil consiglio!I kept on changing things without flushing the rewrite rules. Thanks for the tip!
- 1
- 2019-11-14
- Tan-007
-
- 2012-05-25
Ho avuto questoproblema letteralmente 3giornifa,poimi sonoimbattutoin una serie su wp.tutsplus.com . Ho scambiatoilmio codiceper soddisfaremeglio latua domanda,ma questo è ciò che ho ottenuto dopo aver seguito la serie. Inoltre,tieni presente che questonon è statotestato.
// 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);
Teoricamente,potresti sostituire quello che vuoinell'URLmemorizzatonella variabile
$projects_structure
,quello che c'è èproprio quello che hofinitoper usare.Buonafortunae,come sempre,assicurati ditornaree facci sapere come è andata! :)
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! :)
-
Le risposte composte solo da collegamenti sonogeneralmente considerateinutiliin quantotali risorsepossono (eprobabilmente cesseranno) diesisterein futuro.Riassumiil contenuto.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
-
Giusto,lavorerò su una revisione adeguata.Fair enough, I'll work on a proper revision.
- 0
- 2012-05-25
- cmegown
-
Lì,ora lamia risposta contiene un codice simile al codicefunzionante che hoin un ambiente diproduzione che riscrive con successo un URL ditipo dipostpersonalizzato.Spero che si rivelipiù utile!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
Hoimpostato untipo dipostpersonalizzatoperi mieiprogetti diportfolio.L'URLprincipaleper questo sitrovain
/projects/
Ora ho ancheimpostatoilpermalink deimiei post sulblog su
/articles/*/
per la struttura delpermalink.Ciò significa che quando vado a visualizzare unprogettoportfolio,l'URL cambiain/articles/projects/project-name/
So che deveesserci unmodoper riscriverei permalink solo periltipo dipostpersonalizzato deimiei progetti.Manon hofamiliarità con la sintassinella dichiarazione dello slug dell'URL: apprezzerei qualsiasi aiuto cheposso ottenere!