Las páginas de tipo de mensaje personalizado "no se encuentran"

17

He creado dos nuevos tipos de Publicaciones personalizadas utilizando el código que he utilizado con éxito en otros proyectos sin problemas. El primero se llama top_charts, el otro case_studies, y ambos aparecen correctamente en el menú de administración y puedo crear nuevas publicaciones.

Lamentablemente, las nuevas publicaciones no aparecen. Acabo de recibir una 404.phprespuesta.

He creado una archive-top_charts.phppara ver si puedo hacer que aparezca algo, pero veo una 404.phprespuesta de "página no encontrada".

Originalmente nombré las publicaciones personalizadas top-chartsy case-studies, pero pensé que el guión podría haber sido el problema, por lo que las renombré para usar un guión bajo. No ha ayudado.

He intentado volver a guardar mis enlaces permanentes, pero nada ha cambiado. Mi página .htaccess también se parece a lo que esperarías (y otras páginas funcionan bien). ¿Qué más puedo consultar?

Django Reinhardt
fuente
1
¿ha utilizado flush_rewrite_rules (falso); en el registro de tipo de publicación? para más detalles, siga este enlace nooshu.com/page-not-found-with-custom-post-types
jas
Gracias. Eso solucionó el enlace a la publicación en sí, pero no a la archive-top_charts.phppágina. ¡Extraño!
Django Reinhardt
Simplemente agregue parte de él en respuesta que puede ayudar a otros usuarios e intentar buscar también el archivo.
jas
encontré la respuesta simple a este error en otra publicación de la pila: No se encontró la página de
enlace

Respuestas:

18

Para arreglar una publicación personalizada que no se encuentra, utilice el siguiente código en su functions.php:

flush_rewrite_rules( false );

Solo debe hacer esto como una medida temporal; de lo contrario, se ejecutará en cada carga de página.

Para más detalles por favor siga este enlace

En cuanto a que archive-top_charts.phpno aparece, asegúrese de tenerlo 'has_archive' => truecuando registre su tipo de publicación.

jas
fuente
genial has encontrado 'has_archive' :)
jas
27

¡No tienes que editar tu código php!

Si bien puede hacer esto en la función que registra su tipo de publicación personalizada, como las otras respuestas, también puede hacerlo en el menú de configuración, evitando así tocar su código php:

Para vaciar las reglas de reescritura de WordPress o los enlaces permanentes (generalmente deben hacerse manualmente para los nuevos tipos de publicaciones personalizadas) desde el Panel de control:

  1. En el menú principal, busque "Configuración> Enlaces permanentes".
  2. Desplácese hacia abajo si es necesario y haga clic en "Guardar cambios".
  3. Las reglas de reescritura y los enlaces permanentes se vacían.

¡Es así de simple!

imagen de guardar la página de enlaces permanentes referencia

Danny
fuente
2
Creo que también lo necesitaba has_archive, pero es bueno saber que puedes forzar un rubor a través del menú.
Django Reinhardt
1
¿Hay alguna forma de guardar los cambios en (actualizar) enlaces permanentes automáticamente en lugar de ir a Configuración> Enlaces permanentes cada vez que se agrega una categoría / término de CPT? ¿Cómo los no administradores podrán hacer esto si no tienen acceso a la configuración? ¿Se puede invocar un gancho al agregar una nueva categoría para eliminar enlaces permanentes automáticamente?
Ryan Coolwebs
0

Me doy cuenta de que esto es tarde en el juego (y puede que no sea el problema relacionado), pero quería señalar a otros un posible problema.

En mi caso, había configurado la reescritura de mi taxonomía en herramientas y la reescritura del tipo de contenido en la misma cosa. Por lo tanto, nunca funcionaría correctamente, ya que era un conflicto. Desafortunadamente, no hay detección de tal cosa, así que pensé en señalarlo a los demás.

Shaneonabike
fuente
-1

En mi caso, faltaban derechos en mi carpeta de desarrollo, por lo que el archivo .htaccess no pudo haberse creado ni modificado.

Por lo tanto, el vaciado manual o el almacenamiento de cambios en los enlaces permanentes de WP no fue útil.

La solución fue crear el archivo .htaccess por mí mismo

David Salcer
fuente