Eliminando la base de taxonomía usando la reescritura de WP

4

Estoy intentando crear la siguiente estructura de URL:

example.com/attractions                     <-- post type archive
example.com/attractions/taxonomy_term       <-- taxonomy archive
example.com/attractions/van-gogh-museum     <-- custom post type

Lamentablemente, esto no es posible de manera predeterminada: WordPress necesita la base de taxonomía en la URL, como escribió el usuario sanchothefat de SE en su respuesta a esta pregunta :

  

... si no quieres que la taxonomía esté allí, estás fuera de   suerte, no puedes tener la misma babosa que tu tipo de publicación u otra   taxonomía, ya que no sabrá qué término es de qué taxonomía y qué es   una publicación.

En otras palabras, WordPress necesita esta estructura de enlace permanente:

example.com/attractions/taxonomy_base/taxonomy_term

Mi pregunta: ¿Hay alguna manera de hacer que esto funcione con la API de reescritura de WordPress?

Supongo que implica 2 pasos:

  1. Eliminando la base de taxonomía de la URL
  2. Indica a WordPress qué tipo de publicación necesita mostrar

Actualización # 1

Encontré un fragmento de código que debería eliminar la base de taxonomía de la URL:

global $wp_rewrite;
$wp_rewrite->extra_permastructs['taxonomy_base'] = array('%taxonomy_base%', EP_NONE);

( Fuente : consulte la última respuesta al final de la página)

Sin embargo, esta no es la solución completa, ya que WordPress no puede decir si la publicación es un archivo de taxonomía o un tipo de publicación ...

Actualización # 2

El autor de este gran artículo en Las consultas de taxonomía avanzada con URL bonitas me escribieron:

  

Lo que estás preguntando no es demasiado difícil, pero podría ser un poco complicado.   Las reglas de reescritura necesitan saber qué tipo de cosas es el segundo término.   es (..) Es por eso que el prefijo de nombre de categoría / etiqueta / taxonomía está precedido.   Podría crear una reescritura para que todo después de / attractions / sea   tratada como una URL de taxonomía, pero hacer ambas cosas se complica un poco.

Actualización # 3

Para cualquier persona que tenga el mismo problema, eche un vistazo a esta discusión sobre WordPress Answers. Especialmente el código del plugin de MikeSchinkel podría ayudar.

Este es un ejemplo interesante de WPCandy que combina la base y el término de la taxonomía en la URL: http://wpcandy.com/pros/experienced/with-multisite

    
pregunta Mattvic 04.11.2011 - 22:32

2 respuestas

1

Acabo de agregar un complemento al directorio de Wordpress que elimina la base de babosas para cualquier taxonomía personalizada y la taxonomía de categoría predeterminada. Puede encontrarlo aquí: enlace

    
respondido por el David DiGiovanni 30.08.2012 - 01:15
1

Hace poco me encontré con la misma situación, y después de un día buscando una solución y no pude encontrar ninguna, escribí mi propia solución .

El truco es usar Wordpress wp_rewrite y agregarle sus URL cuando Wordpress genere sus enlaces permanentes al principio.

Escribí una función simple para hacerlo todo de forma automática y expliqué todo en mi blog (no quiero pegar el mismo código dos veces), así que siéntete libre de verificarlo;)

enlace

    
respondido por el Some Web Guy 03.12.2012 - 16:43

Lea otras preguntas en las etiquetas