Pasando y recuperando variables de consulta en WordPress
Tengo dos páginas de autores, una muestra alrededor de 5 entradas. Luego estoy tratando de configurar otra página que mostrará todas sus entradas. He creado una plantilla llamada moreauthorposts.php y estoy tratando de pasar la variable del autor a esta página. El problema es que si paso domain.com/more-author-posts?author=johndoe, esta se elimina. ¿Cómo puedo recuperar este valor? ¿Es esto posible en WordPress? Sé que WP Rewrite está modificando mi estructura de URL de alguna manera, pero no estoy seguro.
He intentado:
get_query_var('author')
y he intentado leer esto pero no tuve suerte:
http://codex.wordpress.org/Query_Overview
¿Sugerencias?
Gracias.

Estoy casi seguro de que author
está integrado, así que usa algo como author_more
. Primero necesitarás agregar esa variable a query_vars
. Ejemplo:
// añadir `author_more` a las variables de consulta
add_filter( 'init', 'add_author_more_query_var' );
function add_author_more_query_var()
{
global $wp;
$wp->add_query_var( 'author_more' );
}
Luego, en tu plantilla more-author-posts.php
llámalo así:
if ( get_query_var( 'author_more' ) )
{
// haz lo que necesites
}
Actualización
Esto funciona en el siguiente ejemplo de URL/caso de uso:
http://example.com/index.php?author_more=valor
Pero si quieres usar esto como una URL amigable, necesitas agregar una regla de reescritura:
add_action('init','add_author_more_rewrite_rule');
function add_author_more_rewrite_rule()
{
add_rewrite_rule(
'more-author-posts/(\d*)$',
'index.php?author_more=$matches[1]',
'top'
);
}
Ahora puedes usarlo así
http://example.com/more-author-posts/valor

Ok, agregué las variables de consulta en el functions.php. Luego añadí el otro código a mis posts de más autores. ¿Cuál sería la estructura de URL correcta para pasarlos? Sé que paged usa el formato /page/2 pero hacer more-author-posts/more_author/johndoe no parece estar funcionando.

El problema es que no estoy intentando pasar las variables a index.php. Estoy intentando pasarlas a la plantilla personalizada que he desarrollado, ya que se ve completamente diferente a index. Así que si paso valores a moreauthor.php?author_more=johndoe... eso no parece funcionar. ¿Estoy haciendo algo mal aquí?

@בניית אתרים ¡parece una respuesta muy clara! @codeisforeva No deberías estar llamando al archivo de plantilla directamente, ¿verdad? index.php es solo el archivo raíz de WordPress, cada regla de reescritura debería pasar por ahí.

¿Entonces no es posible configurar una plantilla personalizada y pasar variables personalizadas a ella en WordPress? Pensaría que esta sería una gran limitación de la plataforma.

Lo conseguí funcionar con index.php, muchas gracias por la ayuda. Simplemente parece extraño que no puedas hacer esto con otras plantillas.

no realmente porque puedes manejar todas las solicitudes GET a través de un solo archivo index.php
