URL de archivo de tipo de publicación personalizada toma la URL de la página

2

Tengo problemas con los archivos para un tipo de publicación personalizada.

  • Tengo una página de WordPress en /address/
  • He creado publicaciones personalizadas dinámicas que aparecerán en /address/post#/

Cuando activo esta funcionalidad, la página de WordPress en /address/ se reemplaza con el archivo de publicaciones personalizadas.

¿Cómo puedo evitar que esto suceda? Quiero que la página de WordPress aparezca en /address/ en lugar del archivo.

    
pregunta Cyrus 11.08.2016 - 23:23

2 respuestas

4

Cuando registres tu tipo de publicación, establece el argumento has_archive en falso. Si lo cambia, no olvide limpiar las reglas de reescritura para ver el cambio.

Ahora esto funciona bien si, como pidió, desea mostrar la página y no el archivo. ¿Qué pasa con la situación en la que te gustaría mostrar el contenido de la página y también la lista de publicaciones personalizadas?

Hay dos enfoques que puedes usar para lograr esto.

1 - Usar una plantilla de página

Este es el que veo más a menudo en la web. Cree una plantilla de página y, después de mostrar el título y el contenido, use un bucle personalizado para mostrar sus publicaciones. Hace el trabajo, pero la gente parece enredarse con la paginación adecuada con bastante frecuencia.

2 - Página para publicaciones personalizadas

Este es mi enfoque preferido. Mantengo has_archive cuando registro mi tipo de publicación y hago una página normal para usar con la plantilla de archivo. La barra de la página coincide con la barra de archivo. Por defecto, las reglas de reescritura de WP están ordenadas para que el Archivo triunfe sobre la página.

Al comienzo de mi plantilla archive-{post_type}.php coloco esto:

$queried_object = get_queried_object();

$page_data = get_page_by_path( $queried_object->rewrite['slug'] );

/* no need to check our context, as we know that this 
   code will only run for our CPT archives
*/

if ( !is_single() ) {
    echo apply_filters('the_content', $page_data->post_content);
}

// process the content in the same way that the_content would within a loop

// Now go into your usual archive loop...

Si prefieres, puedes usar una ID de página o incluso configurar una opción para tu tipo de publicación que sea equivalente a la página incorporada para publicaciones.

De esta manera, no tendrá que reconstruir la consulta de archivo más difícil para usted.

    
respondido por el Andy Macaulay-Brook 11.08.2016 - 23:28
0

Gracias a todos por su ayuda.

Andy me puso en el camino correcto. Solo tuve que añadir:

flush_rewrite_rules ();

Gracias de nuevo!

    
respondido por el Cyrus 13.08.2016 - 04:12

Lea otras preguntas en las etiquetas