Permalink: custom post type -> custom taxonomy -> post
-
-
soloindicandoti qualcosa che dovevofareprima .. http://wordpress.stackexchange.com/questions/102246/wordpress-returns-404-on-custom-rewrite-rule-conflict-in-parametersjust pointing you to something i had to do before.. http://wordpress.stackexchange.com/questions/102246/wordpress-returns-404-on-custom-rewrite-rule-conflict-in-parameters
- 1
- 2013-08-01
- reikyoushin
-
1 risposta
- voti
-
- 2013-08-01
Innanzitutto, registra latuatassonomia e imposta l'argomento
slug
direwrite
pershows
:register_taxonomy( 'show_category', 'show', array( 'rewrite' => array( 'slug' => 'shows', 'with_front' => false ), // your other args... ) );
Quindi, registrailtuotipo di articolo e imposta lo slug su
shows/%show_category%
e imposta l'argomentohas_archive
sushows
:register_post_type( 'show', array( 'rewrite' => array( 'slug' => 'shows/%show_category%', 'with_front' => false ), 'has_archive' => 'shows', // your other args... ) );
Infine,aggiungi unfiltro a
post_type_link
per sostituire la categoria dello spettacolonei singolipermalink dello spettacolo:function wpa_show_permalinks( $post_link, $post ){ if ( is_object( $post ) && $post->post_type == 'show' ){ $terms = wp_get_object_terms( $post->ID, 'show_category' ); if( $terms ){ return str_replace( '%show_category%' , $terms[0]->slug , $post_link ); } } return $post_link; } add_filter( 'post_type_link', 'wpa_show_permalinks', 1, 2 );
<"EDIT"
Hai dimenticato l'argomento
has_archive
diregister_post_type
sopra,che dovrebbeessereimpostato sushows
.First, register your taxonomy and set the
slug
argument ofrewrite
toshows
:register_taxonomy( 'show_category', 'show', array( 'rewrite' => array( 'slug' => 'shows', 'with_front' => false ), // your other args... ) );
Next, register your post type and set the slug to
shows/%show_category%
, and sethas_archive
argument toshows
:register_post_type( 'show', array( 'rewrite' => array( 'slug' => 'shows/%show_category%', 'with_front' => false ), 'has_archive' => 'shows', // your other args... ) );
Last, add a filter to
post_type_link
to substitute the show category in individual show permalinks:function wpa_show_permalinks( $post_link, $post ){ if ( is_object( $post ) && $post->post_type == 'show' ){ $terms = wp_get_object_terms( $post->ID, 'show_category' ); if( $terms ){ return str_replace( '%show_category%' , $terms[0]->slug , $post_link ); } } return $post_link; } add_filter( 'post_type_link', 'wpa_show_permalinks', 1, 2 );
EDIT
Forgot the
has_archive
argument ofregister_post_type
above, that should be set toshows
.-
Milo,grazie!Ilfiltropost_type_linkerailpezzomancanteperme.Chiunque legga questothread con lo stessoproblema,l'unica cosa danotare è che c'è unpiccoloerrorenellafunzione wpa_show_permalinks,dove $post->post_type=='show' dovrebbeeffettivamenteessere 'shows'.Grazie ancora Milo!Milo, thank you! The post_type_link filter was the missing piece for me. Anyone reading this thread with the same problem, the only thing of note is there is a small mistake on the wpa_show_permalinks function, where $post->post_type == 'show' should actually be 'shows'. Thanks again Milo!
- 1
- 2013-08-02
- Paul T
-
Grazie Milo!Questo ha risoltoilmioproblema.Stavo cercando di ottenere qualcosa di simile usando [questoplugin] (https://wordpress.org/plugins/custom-post-type-permalinks/)e gli URL riscritti stavano ottenendo 404. Immagino chefarlomanualmentefosseilmodogiusto.Thanks, Milo! That solved my problem. I was trying to achieve something similar using the [this plugin](https://wordpress.org/plugins/custom-post-type-permalinks/) and the rewritten URLs were getting 404. I guess manually doing it was the right way.
- 0
- 2015-08-02
- Martin Sotirov
-
@milo,proveniente da http://wordpress.stackexchange.com/questions/199456/custom-taxonomy-post-slug-permalink,continuo ad atterrare su un "404" con questo approccio.Lamia struttura dipermalink è "% category%/%postname%"@milo, coming over from http://wordpress.stackexchange.com/questions/199456/custom-taxonomy-post-slug-permalink, I keep landing on a `404` with this approach. My permalink structure is `%category%/%postname%`
- 1
- 2015-08-23
- Atticus
-
Se stai apportando unamodifica a un'istanza WordPressesistente,assicurati di andare su Impostazioni> Permalinke fai clic su Salva.Lemodifiche che haifattoin functions.phpnon avrannoeffettofinchénon lofarai.If you're making a change to an existing WordPress instance, make sure you go to Settings > Permalinks and click save. The changes you've made in functions.php won't take effect until you do.
- 4
- 2016-01-05
- Jay Neely
-
Questo ha quasifunzionatoperme in quanto latassonomia viene visualizzatanellapagina deltipo di articolo,/post_type/taxonomy/è unapagina legittima (precedentemente 404)mailmio/post_type/taxonomy/post è 404.Honotato che durante la registrazione dellatassonomia sopra sia "show_category","show" venivano registrati,anche se solo show_category è latassonomia.Sto solo registrando latassonomia.This almost worked for me in that the taxonomy displays on the post type page, the /post_type/taxonomy/ is a legitimate page (previously 404) but my /post_type/taxonomy/post is 404'ing. I noticed when registering the taxonomy above both "show_category", "show" were being registered, even though only the show_category is the taxonomy. I'm only registering the taxonomy.
- 3
- 2016-09-28
- justinavery
-
@Miloin qualsiasimodoperfarlofunzionare con unatassa secondaria come mostra/tasse/sottotasse/post?@Milo any way to get this to work with sub sub tax like shows/tax/subtax/post ?
- 4
- 2017-01-26
- Benn
-
Anch'io sareiinteressato a sapere comefarlofunzionare conbambini ditassonomia come `/shows/tax/subtax/postname`I too would be interested in knowing how to get this to work with taxonomy children like `/shows/tax/subtax/postname`
- 0
- 2017-02-22
- Solomon Closson
-
Questa è unatecnica davveropreziosa,grazie.C'è comunque unpiccoloproblema: usando 'post_type_link',ilpulsante dimodifica/modificanella visualizzazione dimodifica delpost dell'amministratore scomparirà.Significa che lo slug delpostnon saràmodificabile,quindi lo slug verrà correttoe se cambieraipost_titlein seguito,non saraiin grado di rispecchiarlo sullo slug.This is a really valuable technique, thank you. There's a little problem anyway: by using the 'post_type_link', the modify/edit button on admin's post edit view, will disappear. Meaning that the post's slug won't be editable, and so, that slug will be fixed and if you'll change the post_title later, you won't be able to mirror it on the slug.
- 0
- 2017-08-04
- Luca Reghellin
-
In chemodo (internamente) 'shows/% show_category%' si risolve automaticamentenellatassonomia/termine corretto?Sono solo curioso.I documenti ufficiali di register_post_typenon spiegano,néforniscono alcunainformazionee invece lasciano credere chepossiamo solopassare stringhe regolariinvece dipermastrutture complete. Inoltre,non riesco atrovare alcun documento sullagenerazione automatica ditag dipermastruttura almomento della creazione dellatassonomia.How (internally) does 'shows/%show_category%' automatically resolve to the right taxonomy/term? I'm just curious. Official register_post_type docs do not explain, nor give you any information and instead let believe we only can pass regular strings instead of full permastructures. Also, I can't find any doc about auto-generating permastructure tags upon taxonomy creation.
- 0
- 2017-08-04
- Luca Reghellin
-
@Stratboy dovrò riprovare,non ricordo che lo slug delpostnon siamodificabilein questo caso.So che con strutturepiù complesse ho dovuto usareinvece "add_permastruct".WPnonfanulla con "% show_category%"in questo caso,è solo un segnaposto che devi sostituire da solonelfiltro "post_type_link".Questopuòeffettivamenteessere qualsiasitag di riscrittura valido,adesempio se desideri utilizzare un campopersonalizzato o qualcos'altronell'URL.@Stratboy I'll have to try it again, I don't recall the post slug not being editable in this case. I know with more complex structures I've had to use `add_permastruct` instead. WP doesn't do anything with `%show_category%` in this case, it's just a placeholder that you have to replace yourself in the `post_type_link` filter. This can actually be any valid rewrite tag, for example if you want to use a custom field or something else in the URL.
- 0
- 2017-08-04
- Milo
-
Infatti,se dai un'occhiata a $ wp_rewrite subito dopo aver registratoi tipi dipostmaprima delfiltro `post_type_link`,noterai cheiltag% show_category% è statogenerato,così come le relativepermastrutture.Quindi è strano,esistono,quindi vengono riconosciutimaprobabilmente wordpressnon sa cometrattarli.In fact, if you take a look to $wp_rewrite right after registering the post types but before the `post_type_link` filter, you'll notice that the %show_category% tag has been generated, as well as the related permastructures. So it's strange, they exist, so they get recognized but probably wordpress doesn't know how to treat them.
- 0
- 2017-08-04
- Luca Reghellin
-
@stratboy show_category deveessere untag di riscrittura valido,il che è,perché è stato aggiunto comeparte della registrazione dellatassonomia,mapuò ancheessere aggiunto solotramite add_rewrite_tag.Stafacendo la stessa cosa dietro le quinte.@stratboy show_category has to be a valid rewrite tag, which it is, because that was added as part of registering the taxonomy, but it can also just be one added via add_rewrite_tag. It's doing the same thing behind the scenes.
- 0
- 2017-08-04
- Milo
-
Cosa succede quando haibisogno di slug diversiin varie lingue?(WPMLperesempio).E quando alcunipostnon hanno una categoriaimpostata,avranno comunque solo/shows/post-name?Saluti!What happens when you need slug different in various languages? (WPML for instance). And when certain posts don't have a category set, will they still have just /shows/post-name ? Cheers!
- 1
- 2018-12-05
- trainoasis
-
Nel caso di WPMLfunzionaper la linguapredefinitama sfortunatamentenonin altriIn WPML case this works for default language but unfortunately not in others
- 0
- 2019-02-27
- Ivan Topić
-
Avreitanto voluto chefunzionasse ancheperme,ma ogni singolarefiniscein un 404 ...I so wished this would work for me as well but every singular ends in a 404....
- 4
- 2019-03-02
- Beee
-
Questo è soloil risultato di 404 ancheperme,sfortunatamente ... anche dopo aver rinfrescatoi permalink.This is just resulting in 404s for me too, unfortunately... even after refreshing permalinks.
- 0
- 2019-11-05
- Wilson Biggs
-
WordPress 5.2.4e WordPress 5.3 hannoprodotto 404 ancheper questa soluzione.Hopubblicato una domanda sulforum di supporto WP chiedendo se qualcun altropotrebbe avere qualche conoscenza di ciò che è cambiatonelle riscritturenegli ultimi anni chepotrebbe aver rotto questa capacità. Sto usando unpluginpergestire la struttura delpermalink orae sembra cheilplugin stiafacendo unpo 'di analisi wp_queryperfarfunzionare correttamentei permalink.WordPress 5.2.4 & WordPress 5.3 resulted in 404's for this solution as well. I've posted a WP Support forum question asking if anyone else might have some knowledge in what changed in rewrites in the last few years that might have broken this ability. I'm using a plugin to manage the permalink structure now and it seems that the plugin is doing some wp_query parsing to make the permalinks work correctly.
- 0
- 2019-11-13
- Rebecca Dessonville
-
Ho riscontrato lo stessoproblema 404 sulle singolepagine deipost deiprogrammi come commentato da altri utenti,ma sono statoin grado di aggirarlo aggiungendo "add_rewrite_rule ('shows/([^/] +)/([^/] +)','index.php? show=$ corrisponde a [2] ','top '); `allemie funzioni.Questofarà corrispondere la secondaporzione di slug dopo "show" alnome di unpost dello spettacolo.I had the same 404 issue on individual show post pages as commented by other users, but was able to work around it by adding `add_rewrite_rule( 'shows/([^/]+)/([^/]+)', 'index.php?show =$matches[2]', 'top' );` to my functions. This will match the second slug portion after 'show' to a show post name.
- 2
- 2020-01-08
- Sarah
-
La soluzione di Milofunziona quasi.Sfortunatamenteiltipo dipost vienepersoe ilmodellopredefinito viene utilizzato alposto del CPT.Milo's solution almost works. Unfortunately the post type is lost and the default template is used instead of the CPT.
- 0
- 2020-05-12
- bitkorn
-
Questo ha quasifunzionatoperme: lapaginaprincipale deltipo diposte lepagine delle categoriefunzionavanobene,manonfunzionava suipost!(WPpensava cheilpostfosse una sottocategoriae ha restituito un 404.) Ilpassaggiomancanteerailfiltro `` rewrite_rules_array '',come descritto qui: https://stackoverflow.com/a/23702560/915762This almost worked for me – the main post type page and the category pages were working fine, but it was failing on the posts! (WP thought the post was a sub-category, and returned a 404.) The missing step was the ```rewrite_rules_array``` filter, as described here: https://stackoverflow.com/a/23702560/915762
- 0
- 2020-07-27
- JoLoCo
Hoproblemi a lavorare con le regole di riscrittura di WordPresse potrei aiutarmi.
Ho untipo dipostpersonalizzato chiamato
_shows_
.Tuttigli spettacoli hanno un'unica categoria ditassonomiapersonalizzata
_show-category_.
Un_show_
non avràmaipiù di una_show-category_
.Vorrei chei miei URL venisseroinstradatiin questomodo:
Quindi,comeesempio delmondo reale,supponiamo di avere un
_show-category_
"Foo"e un_show_
postintitolato "Bar" che ha "Foo" com'è_show-category_
. Mi aspetto che lamia app WordPress abbia questo aspetto:Cerco dievitarei plugin quandopossibile,ma sono aperto a qualsiasi soluzione.