Me gustaría tener una página separada para los comentarios en una publicación, de modo que esta página: /2011/02/post-name/
solo muestre la publicación y luego haga clic en un enlace para ver los comentarios, que lo llevará a una página como esta:/2011/02/post-name/comment-page-1/
Luego verificaré la URL para ver si "comment-page-x" está en ella, y mostraré la página de manera diferente si es así (elimine la publicación, para que las personas no tengan que desplazarse más allá de eso cada vez, y también estilizar cosas poco diferente)
Esto funcionaría, pero WordPress redirige comment-page-1
a la página de publicación; lo necesito para mantenerlo comment-page-1
allí en la URL.
es posible? ¿Cómo puedo hacerlo? ¡Gracias!
Respuestas:
Gran pregunta! WordPress asigna su número de página de comentarios a la var de consulta
'cpage'
que se establece cuando su URL tiene/comment-page-1/
al final. Entonces su culpable está en laredirect_canonical()
función, línea 192 de/wp-includes/canoncial.php
.Dado que la
redirect_canonical()
función se configura como una acción, lo que podemos hacer es insertar nuestra propia función a la que se llamará, haga que nuestra función establezca la'cpage'
consulta varfalse
, callredirect_canonical()
y luego'cpage'
vuelva a establecer lo que era; eso evitará que WordPress redirija hacia usted.Para insertar su propia función, debe llamar a los dos ganchos
'init'
y'template_redirect'
así asegurarse de configurar el'init'
gancho para que se llame después deldo_action()
núcleo interno de WordPress que agregaredirect_canonical()
:Entonces, por supuesto, necesitas hacer algo con tu
'cpage'
. Puede verificar el valor devuelto porget_query_var('cpage')
o puede agregar otro enlace para permitirle crear una plantilla específica para comentarios, que es lo que hice. Agregará buscar un archivo de plantilla de tema con el mismo que normalmente se cargaría pero[comments].php
al final del nombre en lugar de.php
, es decirsingle[comments].php
. Tenga en cuenta que establezco la prioridad para este filtro en 11; Es posible que deba establecer un número aún mayor si un complemento que usa se agrega después de su enlace:¡Y aquí está la prueba de que todo funciona!
(fuente: mikeschinkel.com )
fuente
functions.php
archivo de su tema o en un.php
archivo de un complemento que podría estar escribiendo". ¿Pero dices que no está funcionando? ¿Qué es exactamente lo que no está haciendo? ¿Ha puestoecho "Test"; exit;
declaraciones en cada una de las funciones para asegurarse de que los ganchos estén disparando? ¿Tiene complementos que pueden ser conflictivos? ¿Intentó cambiar11
en dos lugares a100?
¿Incluyó todo el código? ¿Creó un archivo de plantilla de tema llamadosingle[comments].php
?