zok
Cuando hago clic en un enlace de paginación en mi publicación personalizada, escriba la lista de publicaciones “works” (o ingrese una URL como “mysite.com/works/page/2”), obtengo la página 404.
La paginación de tipo de publicación regular (blog) funciona correctamente. Además, todo lo demás con respecto a mi tipo de publicación personalizada “funciona” parece funcionar bien.
Mi template-works.php
archivo tiene esto:
get_home_pagination();
$args = array( 'post_type' => 'works', 'posts_per_page' => 10, 'paged' => $paged ); $wp_query = new WP_Query( $args );
if ( $wp_query->have_posts() ) :
while ($wp_query->have_posts()) :
$wp_query->the_post();
get_template_part( 'loop', 'works' );
endwhile;
else:
_e( 'Nothing here.' );
endif;
El mismo código (reemplazando el tipo de publicación, por supuesto) se usa en el template-blog.php
donde los enlaces de paginación funcionan correctamente.
y luego en functions.php
Tengo:
function get_home_pagination() {
global $paged, $wp_query, $wp;
$args = wp_parse_args($wp->matched_query);
if ( !empty ( $args['paged'] ) && 0 == $paged ) {
$wp_query->set('paged', $args['paged']);
$paged = $args['paged'];
}
}
Por un momento pensé que eso sucedía porque WordPress no podía encontrar ninguna publicación dentro del bucle: intentaba obtener el ID de la publicación cuando no había publicaciones, como en la línea 29 de post-template.php
. Pero luego me di cuenta de esto:
Si escribo, por ejemplo, la URL “(…)/blog/page/456”, la plantilla del blog se carga con el mensaje “Aquí no hay nada”. No hay página de error 404.
Por otro lado, la URL “works/page/2”, que espero devolver algunas publicaciones, termina en una página de error 404.
¿Por qué?
EDITAR:
En la página 404 también me sale este error:
Intentando obtener la propiedad del no objeto en (…)/wordpress/wp-includes/post-template.php en la línea 29.
… pero podría no estar relacionado con el problema de paginación. Logré eliminar el código que causa este error (de un complemento que personalicé) y la paginación aún no funciona.
EDITAR:
Esto es lo que obtuve al depurar la URL mysite.com/trabalhos/pagina/2 con el complemento Debug-this. Parece estar muy mal:
Obs: trabalhos = obras, pagina = página
Regla coincidente: trabalhos/([^/]+)(/[0-9]+)?/?$
Consulta coincidente: funciona = página y página =% 2F2
Cadena de consulta: page=%2F2&name=pagina&post_type=works&works=pagina&debug-this=rewrites
A mi entender, la URL mysite.com/trabalhos/pagina/2 DEBERÍA apuntar a la siguiente URL (excepto que no funciona, pero si reemplazo ‘trabalhos’ con ‘noticias’, mi slug para ‘blog’, funciona):
mysite.com/trabalhos/pagina/2/?pagename=trabalhos
Sin embargo, la URL mysite.com/trabalhos/pagina/2 apunta a esta extraña URL:
mysite.com/trabalhos/pagina/2?page=%2F2&works=pagina&post_type=works&name=pagina
Y sorprendentemente, la siguiente URL apunta exactamente al contenido que esperaba, es decir, la página 2 de las obras (trabalhos):
mysite.com/noticias/pagina/2/?pagename=trabalhos
Parece que estoy cerca de la solución… sin embargo, intenté desactivar todos los complementos, eliminar casi todo el código php del tema, cada vez que restablecí la configuración de los enlaces permanentes en el panel de administración, entre otras cosas, y el error persiste.
¿Es alguna mala configuración? ¿Donde seria?
¡Gracias de antemano por cualquier ayuda!
Eso suena como un conflicto de babosas en su tipo de publicación personalizada. Intente cambiar el nombre del slug de la publicación a cualquier otro nombre y vaya a los enlaces permanentes nuevamente para regenerar las reglas de reescritura.
-
Resulta que de hecho fue un conflicto de CPT/slug de página. Utilicé el mismo slug en mi propiedad de ‘reescritura’ de tipo de publicación personalizada y en la página que enumeraba todas las publicaciones de ese tipo de publicación personalizada, y aparentemente eso arruinó por completo la cadena de consulta de WordPress.
– zok
9 de abril de 2014 a las 13:08
-
Esta publicación también me dio buenas ideas sobre el tema: código.tutsplus.com/tutorials/…
– zok
9 de abril de 2014 a las 13:22
-
¡Me salvaste! 4 horas perdidas en esto
-Adewale George
25 de junio de 2016 a las 19:04
-
Si usa la interfaz de usuario de CPT, edite su tipo de publicación personalizada y cambie la opción Reescribir “(predeterminado: verdadero) Si WordPress debe o no usar reescrituras para este tipo de publicación” a falso.
– Carlos
24 de junio a las 19:35
Una vez más, guarde el botón Permalink, puede resolver este problema
– Tamil Selvan C
07/04/2014 a las 18:21
mira mi respuesta stackoverflow.com/questions/22364294/…
– Michal S.
07/04/2014 a las 18:27
Usé un complemento para depurar la consulta y la reescritura. La consulta coincidente y la cadena de consulta para el enlace de paginación de obras aparentemente están en mal estado, y la regla coincidente parece incorrecta. He estado durante bastante tiempo y no puedo resolverlo. Eso es un montón de información para colocar en un comentario. Podría editar mi publicación, pero supongo que será mejor que comience un nuevo hilo…
– zok
8 de abril de 2014 a las 4:29