A taxonomia dinâmica no permalink fez todas as outras postagens NÃO ENCONTRADAS?

4

Eu adicionei minhas taxonomias no permalink em vez do slug do Custom Post Type, e funciona bem. Eu diria mesmo que tudo estava funcionando bem, mas mudar a instalação do WP para o Multisite quebrou todos os outros posts e páginas (não os CPTs).

Os permalinks são gerados corretamente todas as vezes como? p = 123 ou outros URLs, então a informação do post é encontrada, mas não encontrada para o loop.

Foi assim que obtive a taxonomia no lugar da lesma do CPT:

1) A reescrita post_type é definida como% listing_type% e funciona bem, como segue:

'rewrite' => array( 
            'slug' => '/%listing_type%', 
            'with_front' => false,

2) E as seguintes funções substituem as sequências% listing_type% e "listing_type" das URLs e links de termos gerados por wp_list_categories (), respectivamente (removendo o nome do CPT da URL)

  function listing_type_link_filter_function( $post_link, $id = 0, $leavename = FALSE ) {
    if ( strpos('%listing_type%', $post_link) === 'FALSE' ) {
      return $post_link;
    }
    $post = get_post($id);
    if ( !is_object($post) || $post->post_type != 'listing' ) {
      return $post_link;
    }
    $terms = wp_get_object_terms($post->ID, 'listing_type');
    if ( !$terms ) {
      return str_replace('/listing_type', '/', $post_link);
    }
    return str_replace('%listing_type%', $terms[0]->slug, $post_link);
  }

add_filter('post_type_link', 'listing_type_link_filter_function', 1, 3);


  function term_link_filter_function( $termlink, $term, $taxonomy ) {
    if ( strpos('listing_type', $termlink) === 'FALSE' ) {
      return $termlink;
    } else  return str_replace('/listing_type', '', $termlink);
  }

add_filter('term_link', 'term_link_filter_function', 1, 3);

Agora, tenho quase certeza de que tudo estava funcionando bem antes de criar um Multisite. Vou pesquisar como descompactá-lo com segurança (o recurso multisite) e postar a atualização mais tarde.

Alguma idéia do que poderia estar quebrando as postagens e páginas NÃO nos CPTs acima? Se eu remover o% s do slug post_type, tudo funciona bem.

UPDATAE

Eu notei que outros exemplos de trabalho tinham uma regra de reescrita para cada permalink customizado, então eu adicionei, e VOILA, os posts foram corrigidos agora, mas as páginas ainda estão quebradas

ISTO PARCIAMENTE TRABALHA (somente postagens)

global $wp_rewrite;
$wp_rewrite->extra_permastructs['listing'][0] = "%listing_type%/%postname%";
    add_rewrite_rule("([^/]+)/([^/]+)/?$", 'index.php?post_type=listing&listing_type=$matches[1]&name=$matches[2]', 'bottom');
    add_rewrite_rule("([^/]+)/([^/]+)/?$", 'index.php?post_type=listing&listing_type=$matches[1]&page=$matches[2]', 'bottom');

O código acima (dentro da função de definição de CPT) apenas corrigiu as postagens , mas as páginas (para as quais a segunda linha add_rewrite_rule foi usada) ainda estão quebradas.

    
por sergio 23.07.2012 / 18:27

1 resposta

1

Adicione suas regras de reconfiguração a top , não bottom . Todas as regras correspondentes serão abortadas no processo. Portanto, se houver apenas uma correspondência única antes, suas regras serão ignoradas.

    
por kaiser 09.10.2012 / 16:54