Tengo un tipo de portafolio personalizado (portafolio de slug) en mi tema y todo funciona bien, excepto una cosa. Cuando las personas crean una página con una gran cantidad de cartera, por ejemplo: ejemplo.com/portfolio, el tema cree que quiero usar la página de archivo de tipo de publicación personalizada, no mi página creada en el editor.
¿Puedo de alguna manera "reservar" el portafolio de slug cuando las páginas se guardan para asegurarme de que nunca se use, tal vez renombrado a portafolio?
Mi proyecto utiliza los métodos descritos en este tutorial, aquí está el conflicto al que me refiero:
"Más allá de tener que parchear el código, hay otro inconveniente aquí en que no puedes llamar a tu página slug lo mismo que tu slug de tipo de publicación personalizada. Piensa en tu slug de tipo de publicación personalizada como una palabra clave reservada; sin embargo, puedes hacer el título de su página con el mismo nombre que su tipo de mensaje personalizado, siempre que su mensaje sea diferente ". - http://wp.tutsplus.com/tutorials/custom-post-type-pagination-chaining-method/
Gracias por cualquier consejo!
fuente
Respuestas:
Los siguientes 2 filtros le permiten conectarse cuando WordPress verifica el slug y se encuentran en la función wp_unique_post_slug () en el archivo wp-includes / post.php.
Hay 2 filtros, uno para publicaciones jerárquicas y otro para publicaciones no jerárquicas. El filtro jerárquico proporciona la ID para la publicación principal, por lo que si $ post_parent es 0, sabe que esta es una publicación "base".
Los filtros también pasan $ post_type si desea agregar tipos de publicación específicos a su lógica.
Al devolver "verdadero", le está diciendo a WordPress que este slug es malo, por lo que WordPress agrega un sufijo, al igual que lo haría si nos estuviera tratando de enviar un nombre / slug que ya está en uso.
fuente
Cree una página con un trozo de 'cartera' y conviértala en 'Privada'. Se ocultará al público al reservar la babosa para un uso posterior.
fuente
Encontré exactamente este problema al investigar un problema de paginación. Tenemos una página de inicio de Noticias (slug "news") y la paginación estaba fallando ... los intentos de llegar a / news / page / 2 / siempre resultaron en '404 - No encontrado'.
El problema resultó ser que nuestro tipo personalizado de Noticias también recibió la "noticia" de la babosa. Al cambiar este último (por ejemplo a "news_archive") se solucionó el problema. Esto dejó las referencias URL de noticias originales sin cambios. Cambiar la babosa de la página de inicio de Noticias también funcionó, pero luego todas las URL incorporarían la babosa modificada.
fuente