Cómo pasar argumentos personalizados en paginate_links en WordPress
Por ejemplo, tengo domain.com/about?project=1
pero tengo los permalinks activados y estoy usando esto para generar la paginación paginate_links. El problema es que los enlaces generados son así domain.com/about?project=1/page/1
y esto rompe todo porque el proyecto se toma como 1/page/1
.
¿Hay alguna forma de obtener domain.com/about/project/1/page/1
en los enlaces de paginación? Estoy enviando esto desde un formulario usando GET para mostrar el proyecto.

Para agregar argumentos a los enlaces en la paginación de posts, utiliza el argumento 'add_args'
en la función. Debes pasar los argumentos como un array asociativo. Por ejemplo, para agregar project=1
al final de todos tus enlaces, harías esto:
global $wp_query;
paginate_links(array(
'total' => $wp_query->max_num_pages,
'current' => (get_query_var('paged') ? get_query_var('paged') : 1),
'base' => 'http://domain.com/about/%_%',
'format' => 'page/%#%',
'add_args' => array( 'project' => 1 /* o cualquiera que sea el número del proyecto */ ),
));
¡Espero que te haya ayudado!
EDITADO
Para obtener domain.com/about/projects/1/page/1
, puedes agregar una estructura de enlaces personalizada. Voy a asumir que about
es una página.
function wpse21802_init(){
add_rewrite_rule( '([^/]+)/projects/([^/])/?$', 'index.php?pagename=$matches[1]&project=$matches[2]', 'top' );
add_rewrite_rule( '([^/]+)/projects/([^/])/page/(/d+)/?$', 'index.php?pagename=$matches[1]&project=$matches[2]&paged=$matches[3]', 'top' );
}
add_action( 'init', 'wpse21802_init' );
Después de agregar ese código, actualiza las reglas de reescritura yendo a Ajustes -> Enlaces permanentes.

Pero eso genera http://domain.com/about/page/1?project=1

"Estoy enviando eso desde un formulario usando get para mostrar el proyecto." Project es una variable $_GET
en ese enlace, ¿no? 'add_args' => array( 'project' => absint($_GET['project'])

Sí, pero de nuevo lee la pregunta principal: ¿Hay alguna forma de obtener domain.com/about/project/1/page/1 en los enlaces de paginación? Estoy enviando eso desde un formulario usando get para mostrar el proyecto.

Actualicé mi respuesta, pero también me gustaría señalar que WordPress ya admite esa estructura de URL simplemente usando la jerarquía de páginas.
