Como alterar a estrutura do Permalink para o tipo de postagem personalizada e suas taxonomias?
-
-
A solução que deina últimapergunta deveriaterfuncionado dessamaneira,se vocêimplementou corretamente.A única coisa é que vocênão consegue obter aparte htmlThe solution I gave in the last question should have worked that way, if you implemented it correctly. The only thing is you can't get the html part
- 1
- 2011-09-20
- Manny Fleurmond
-
Sim,masfoibloqueadoem um caminhoespecífico,portanto,apenas categoria/subcategoria/páginaenquantonãopode haver subcategorias ou aindamais.Isso émais dinâmico.Yes but it was locked to a specific path, so only category/subcategory/page while there might not be subcategories or even more. This is more dynamic.
- 0
- 2011-09-20
- Mark
-
Oueunãoimpledi corretamente;)Or I did not implement it properly ;)
- 0
- 2011-09-20
- Mark
-
3 respostas
- votos
-
- 2011-09-20
Ok,acho quepossoter uma solução.Eunãotenhoidéia seesta é amaneira certapara conseguirisso,mas comoporenquanto é a única coisa queparecefuncionar.
add_filter('rewrite_rules_array', 'mmp_rewrite_rules'); function mmp_rewrite_rules($rules) { $newRules = array(); $newRules['portfolio/(.+)/(.+?).html$'] = 'index.php?project=$matches[2]'; $newRules['portfolio/(.+)/?$'] = 'index.php?project_category=$matches[1]'; return array_merge($newRules, $rules); } add_filter('request', 'mmp_rewrite_request'); function mmp_rewrite_request($vars) { if (isset($vars['project_category'])) { if (strpos($vars['project_category'], '/') !== false) { $categories = explode('/', $vars['project_category']); $vars['project_category'] = $categories[count($categories) - 1]; } } return $vars; }
Ok I think I might have a solution. I have no idea if this is the right way to accomplish this, but as for now it's the only thing that seems to work.
add_filter('rewrite_rules_array', 'mmp_rewrite_rules'); function mmp_rewrite_rules($rules) { $newRules = array(); $newRules['portfolio/(.+)/(.+?).html$'] = 'index.php?project=$matches[2]'; $newRules['portfolio/(.+)/?$'] = 'index.php?project_category=$matches[1]'; return array_merge($newRules, $rules); } add_filter('request', 'mmp_rewrite_request'); function mmp_rewrite_request($vars) { if (isset($vars['project_category'])) { if (strpos($vars['project_category'], '/') !== false) { $categories = explode('/', $vars['project_category']); $vars['project_category'] = $categories[count($categories) - 1]; } } return $vars; }
-
Ofiltro de solicitação é umaboamaneira defiltrar seestamosfazendo uma categoria (termo defato)e umpost.Elepermite adicionar apenas uma regra de reescritae obtenhapós-página se opostestiverem uma categoria,uma subcategoria ounão.The request filter is a good way to filter if we're asking a category (term in fact) and a post. It allows adding only one rewrite rule and get post page whether if post is in a category, a subcategory or not at all.
- 0
- 2018-10-30
- ZalemCitizen
-
- 2014-11-10
2 Métodos diferentes:
* Vejanotasnofundo destepost.
Porexemplo,você querteressaestrutura depermalink:
/main_category/sub_cat_2/outro_subcat/my-postnoprimeiro ,talvez sejanecessário definir Permalinkspara /% Categoria%/% PostName% . Então ...
Método 1:
Criar categoriaspadrão (
.main_category
,sub_cat_1
,e etc.
)e registre opostpersonalizado,incluindoesteparâmetro:'taxonomias'=> Array ('categoria' ..)
e useeste códiopara alterar Permalinks: https://wordpress.stackexchange.com/a/195643/33667< A >.
Então,depois depublicar umpostpersonalizado (se conectadoem uma categoria),a URL será:
exemplo.com/main_category/sub_cat_1/my-post
Método 2:
(psestemétodo não é aconselhado se Vocêplanejapublicar centenas oumilhares depostagens)
Registre opostpersonalizado (nomeado
main_category
),incluindoessesparâmetros:"suporta"=> Array ('atributos depágina' ...... "hierárquico"=> verdade,
Então,publicarpostspersonalizados comoeste:
(ou seja,publicar vários cartões ,nomeadosub_cat_2,sub_cat_1 ..
. Depois disso,quando vocêpublica outrapostagem,masescolhasub_cat_2
comopai.
P.S.
1) Se você énovato,revisar: registrarpost custom e registrandopost custom comtaxonomia
2) Se vocêprecisar defuncionalidades depesquisapara sub-níveis,use consulta depesquisapersonalizada2 Different Methods:
*See notes in the bottom of this post.
for example, you want to have such permalink structure:
/MAIN_CATEGORY/SUB_CAT_2/Another_SUBCAT/my-postAt first, you may need to set permalinks to /%category%/%postname%. Then...
METHOD 1:
create STANDARD categories (
MAIN_CATEGORY
,SUB_CAT_1
,and etc..
) , and register the CUSTOM POST, including this parameter:'taxonomies' => array('category'..)
and use this codes to change permalinks: https://wordpress.stackexchange.com/a/195643/33667
Then, after publishing a CUSTOM POST (if attached under a category), URL will be:example.com/MAIN_CATEGORY/SUB_CAT_1/my-post
METHOD 2:
(p.s. this method is not advised if you plan to publish hundreds or thousands of posts)
register the CUSTOM POST (named
MAIN_CATEGORY
), including these parameters:"supports" => array('page-attributes'...... "hierarchical" => true,
then, publish custom posts like this:
(i.e. publish several custom posts, namedSUB_CAT_2, SUB_CAT_1..
. After then, when you publish another post, but chooseSUB_CAT_2
as parent.
p.s.
1) If you are newbie, review: Register CUSTOM POST and Registering CUSTOM POST with TAXONOMY
2) if you will need search functionality for sub-levels, then use custom search query -
- 2016-04-07
Depois debater a cabeçapor horas,encontreiestepluginmuito útil.
https://wordpress.org/plugins/custom-post-type-Permalinks/
Abaixoestá atela disparada das opções que dá.
After banging my head for hours, I found this plugin very helpful.
https://wordpress.org/plugins/custom-post-type-permalinks/
Below is the screen shot of options it gives.
Este é um repost de umapergunta anterior queeutinha,masgosto deentrarem mais detalhes agoraparapoder resolver completamenteisso.
Então,denovo,composts (normais) Alterar o Permalink étãofácil quanto a configurações> Permalinke alterá-lopara qualquer coisa que vocêgosta,como o
%category%/%postname%.html
. Issotudofunciona. Se apenasissofossetãofácilpara otipo depostagempersonalizadoe suastaxonomiastambém.Então éisso queeugosto de realizar.
.- http://mywordpress.com/portfolio.html - Exibirtodas aspostagensem todas as categorias.
- http://mywordpress.com/portfolio/music/ - Exibirtodas aspostagensnesta categoria.
- http://mywordpress.com/portfolio/music/trance/ -exibirtodos ospostsnesta (criança ) categoria.
- http://mywordpress.com/portfolio/music/trance/tiesto.html -exibir opost.
O que cheguei até agora é o seguinte:
.- primeiroeu criei um
- Eu criei umportfólio depáginae dei ummodelo depágina que listarátodos osposts
- Então as coisasficarão difíceis,porquenão sabemosporforehand quantas subcategoriasexistem atémesmonenhuma. Assim,aestrutura que somos depois é
- Eunãotenho abordadoissonem,mas deveriater algo a ver com
custom_post_type
nomeado projeto e umtaxonomy
project_category .post_type = project
. Comoposso adicionar .html aopermalink daspáginas? Agora linkspara http://mywordpress.com/portfolio Enquantoeu quero http://mywordpress.com/portfolio.html . Isso deve resolver aprimeira questão.portfolio/(CATEGORY PATH FROM TOP TO CHILD)/post.html
. Eu aindaestoupresonestemomento. Eu acho que devo obter a última categoria adicionada ao caminhoe passar que ao longo da project_category ,que deve levar a um arquivotaxonomy.php ondeeupossoprocessá-lo corretamente.%postname%.html
nofinal de algo.Espero quemeuproblema seja claroe que há desenvolvedores corajosos que vãome ajudar aenfrentaresseproblema quejáme mantém ocupadopor quatro diasinteiros!