Como alterar a estrutura do permalink para o tipo de post personalizado e suas taxonomias?

8

Este é um repost de uma pergunta anterior que eu tive, mas eu gostaria de entrar em mais detalhes agora para poder resolver isso completamente.

Então, novamente, com postagens (normais) alterar o permalink é tão fácil quanto ir para Configurações > Permalink e alterando-o para qualquer coisa que você goste, como o amplamente usado %category%/%postname%.html . Isso tudo funciona. Se isso fosse tão fácil para o tipo de postagem personalizado e também para taxonomias.

Então é isso que eu gosto de realizar.

  1. enlace - exibe todas as postagens em todas as categorias.
  2. enlace - Exibir todas as mensagens nesta categoria.
  3. enlace - Exibe todos os posts nesta categoria (infantil).
  4. enlace - Exibe o post.

O que eu tenho até agora é o seguinte:

  1. Primeiro, criei um custom_post_type denominado project e um taxonomy project_category .
  2. Eu criei um portfólio de páginas e criei um modelo de página que listará todas as postagens post_type = project . Como posso adicionar o .html ao permalink das páginas? Agora ele se conecta a enlace enquanto eu quero enlace . Isso deve resolver o primeiro problema.
  3. Então as coisas ficarão difíceis, porque não sabemos de antemão quantas subcategorias existem, talvez não haja nenhuma. Então, a estrutura que procuramos é portfolio/(CATEGORY PATH FROM TOP TO CHILD)/post.html . Eu ainda estou preso neste momento. Eu acho que eu deveria de alguma forma ter a última categoria adicionada ao caminho e passar isso ao longo do project_category , que deve levar a um arquivo taxonomy.php onde eu possa processá-lo corretamente.
  4. Eu também não resolvi isso, mas deveria ter algo a ver com %postname%.html no final de algo.

Espero que meu problema esteja claro e que haja desenvolvedores corajosos que me ajudarão a resolver esse problema que já me mantém ocupado por quatro dias COMPLETOS!

    
por Mark 20.09.2011 / 13:35

3 respostas

4

Ok, acho que posso ter uma solução. Eu não tenho ideia se este é o caminho certo para conseguir isso, mas, por enquanto, é a única coisa que parece funcionar.

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;
}
    
por Mark 20.09.2011 / 16:28
1

Depois de bater a cabeça por horas, achei este plugin muito útil.

enlace

Abaixo está a captura de tela das opções que ele oferece.

    
por Mohd. Umar 07.04.2016 / 03:57
0

2 métodos diferentes:

* Veja notas no final deste post.


por exemplo, você quer ter essa estrutura permalink:
/ MAIN_CATEGORY / SUB_CAT_2 / Another_SUBCAT / my-post

A princípio , pode ser necessário definir links permanentes para /% category% /% postname% . Então ...




MÉTODO 1:

crie categorias STANDARD ( MAIN_CATEGORY , SUB_CAT_1 , and etc.. ) e registre o CUSTOM POST, incluindo este parâmetro:

'taxonomies'    => array('category'..)

e use esses códigos para alterar permalinks: enlace
Então, depois de publicar um CUSTOM POST (se anexado a uma categoria), o URL será: example.com/MAIN_CATEGORY/SUB_CAT_1/my-post



MÉTODO 2:

(ps este método não é recomendado se você planeja publicar centenas ou milhares de posts)

registre o CUSTOM POST (chamado MAIN_CATEGORY ), incluindo estes parâmetros:

    "supports"      => array('page-attributes'......
    "hierarchical"  => true,

publique postagens personalizadas como esta:
(por exemplo, publique várias postagens personalizadas, denominadas SUB_CAT_2, SUB_CAT_1.. . Depois disso, quando publicar outra postagem, escolha SUB_CAT_2 como pai.





p.s.
1) Se você é novato, resenha: Registre-se PERSPECTIVA POST e Registrando CUSTOM POST com TAXONOMY
2) se você precisar da funcionalidade de pesquisa para subníveis, use consulta de pesquisa personalizada

    
por T.Todua 10.11.2014 / 11:23