Así que esto me está volviendo loco. ¡He pasado días tratando de arreglar esto y no puedo entender por qué esto es tan difícil, ya que seguramente es una estructura de enlace permanente muy común!
Revisé cientos de respuestas y publicaciones y ninguna de ellas parece resolver el problema.
Simplemente quiero esta estructura:
mysite.com/custom-post-type/custom-taxonomy-term/post-name
Entonces logro lo siguiente:
mysite.com/literature - all literature posts
mysite.com/literature/fiction - all literature posts with 'fiction' term
mysite.com/literature/fiction/mybook - the post
Cada vez que intento algo obtengo errores 404 o el paginación no funciona.
¡No entiendo por qué esto es tan difícil!
Cualquier ayuda realmente apreciada!
Gracias
================================================== ==== ================== INFORMACIÓN ADICIONAL ==================
Actualmente estoy registrando el tipo de publicación y la taxonomía de la siguiente manera:
register_post_type('literature',$args);
'rewrite' => array('slug' => 'literature/books','with_front' => false),
register_taxonomy('literature_category',array('literature'), array(
'rewrite' => array( 'slug' => 'literature','with_front' => false ),
Si registro ambos como 'literatura' obtengo un 404 en la página mysite.com/literature pero esto muestra mi enlace permanente como: mysite.com/literature/books/mybook
Después de seguir los consejos sobre esta pregunta: tipos de publicaciones personalizadas, taxonomías y enlaces permanentes
He agregado esto a mis funciones:
function filter_post_type_link($link, $post) {
if ($post->post_type != 'literature')
return $link;
if ($cats = get_the_terms($post->ID, 'literature_category'))
$link = str_replace('%literature_category%', array_pop($cats)->slug, $link);
return $link;
}
add_filter('post_type_link', 'filter_post_type_link', 10, 2);
Y cambié mi tipo de publicación a 'slug' => 'literature/%literature_category%'
Y cambié mi taxonomía a'slug' => 'literature'
Esto funciona muy bien, excepto que en la mysite.com/literature
paginación no funciona, así que obtengo un error 404 en la siguiente URL:
mysite.com/literature/page/2/
fuente
Respuestas:
Siga los consejos sobre esta pregunta como ya lo hizo, pero agregue esto a su código:
Por último, vaya a Configuración> Permalinks y presione guardar. Si aún no funciona, guarde sus enlaces permanentes nuevamente. A veces siento que tienes que salvarlos dos veces, pero quién sabe. De todos modos, déjame saber cómo te va. Tenga en cuenta que se aplica la respuesta estándar n. ° 1 de informática: funciona para mí ... ;-)
Desde la tierra de TMI ...
Como referencia, la razón por la cual las páginas no funcionan de forma predeterminada es que WordPress establece una regla de reescritura para la literatura /% literature_category% /% book% /% page%, lo que tiene mucho sentido si lo piensa. Por lo tanto, sus enlaces permanentes predeterminados tienen estas reglas en competencia en este orden:
Todo lo que realmente estamos haciendo aquí es cambiar el orden de estos desarmando el último (podemos mantenerlo, pero luego cada reescritura tiene una expresión regular más para ejecutar en la carga de la página) y agregarlo al comienzo de la matriz.
Dato curioso: si alguna vez tiene un "libro" titulado "página" y tiene varias páginas, ¡este orden entrará en conflicto y sus páginas posteriores no funcionarán!
fuente