¿Cuál es la URL para un archivo de categoría?

7 feb 2011, 19:03:36
Vistas: 20.1K
Votos: 5

Si mi URL de categoría es:

/blogs/category/foo

y mi URL de archivo es:

/blogs/2011/02/

¿cuál es la URL para los blogs 'foo' de febrero de 2011?

7
Comentarios

/blogs/categoria/foo/?y=2011&monthnum=02

t31os t31os
7 feb 2011 23:23:30

@t31os: Si mueves eso a una respuesta podríamos expandirlo con reglas de reescritura, ¡para que tenga URLs bonitas!

Jan Fabry Jan Fabry
8 feb 2011 12:10:24

¿No entrarían en conflicto las reglas escritas para tal URL con las reglas de subcategorías? Creo que es por eso que no existen tales reglas, ¿cómo puedes diferenciar entre una URL de categoría basada en fecha y una que simplemente es una URL de subcategoría? Puedes incluir mi sugerencia en tu propia respuesta si lo deseas.

t31os t31os
8 feb 2011 12:33:49

@t31os: Hmm, debería ser posible... Con una expresión regular no codiciosa, y porque el archivo de fecha termina con dígitos. Pensaré en ello y tal vez vuelva con una respuesta completa.

Jan Fabry Jan Fabry
8 feb 2011 14:47:26

@t31os: Amplié mi respuesta con reglas de reescritura que añaden navegación basada en fechas. Como pensé, las reglas de reescritura no codiciosas hacen esto posible.

Jan Fabry Jan Fabry
9 feb 2011 17:00:46

Bien hecho, parece que funciona... :) +1

t31os t31os
10 feb 2011 15:43:08

Prueba esto: ?y=2016&monthnum=01&orderby=date&order=ASC Esto es solo un ejemplo, cambia el año y el mes.

gfo95 gfo95
30 dic 2022 21:43:56
Mostrar los 2 comentarios restantes
Todas las respuestas a la pregunta 2
1

No existe un archivo basado en fechas para una categoría. Las páginas /category/[slug]/ ya son "archivos", en el sentido de que muestran publicaciones antiguas en diferentes páginas.

Se puede acceder a las diferentes páginas añadiendo page/2/, page/3/, ... a la URL. Las etiquetas de plantilla para añadir estos enlaces son next_posts_link() y previous_posts_link().

Si deseas añadir una capa basada en fechas a tus archivos de categoría, puedes agregar una regla de reescritura para coincidir con un año, mes opcional y paginación opcional.

add_filter( 'category_rewrite_rules', 'wpse8769_category_rewrite_rules' );
function wpse8769_category_rewrite_rules( $category_rules )
{
    global $wp_rewrite;
    // Esto podría ser incorrecto para estructuras de enlaces permanentes complejas, solo probado en situaciones simples
    $category_permastruct = str_replace( $wp_rewrite->rewritecode, $wp_rewrite->rewritereplace, $wp_rewrite->get_category_permastruct() );
    $category_permastruct = preg_replace( '|^/+|', '', $category_permastruct );

    $category_extra_rules = array(
        // O divide esto en diferentes reglas de reescritura, si la expresión regular es demasiado complicada
        // Los feeds se dejan como ejercicio para el lector
        $category_permastruct . '/([0-9]{4})(/([0-9]{1,2}))?(/page/([0-9]+))?/?$' =>
            'index.php?category_name=$matches[1]&year=$matches[2]&monthnum=$matches[4]&paged=$matches[6]',
    );

    return $category_extra_rules + $category_rules;
}
7 feb 2011 19:06:50
Comentarios

Mi URL /category/[slug]/ solo muestra las 10 publicaciones más recientes, sin enlaces a otras. ¿Hay alguna manera de paginarlas?

Bobby Jack Bobby Jack
7 feb 2011 20:28:39
2

P: ¿Cuál es la URL para los blogs de 'foo' de febrero del 2011?

La URL en el contexto de tu sitio es: /blogs/categoria/foo/?y=2011&monthnum=02

(Copié descaradamente esto de un comentario de t31os, así que los créditos son para él por esto)

9 feb 2011 17:43:27
Comentarios

Desafortunadamente, eso no funciona del todo. Limita bien el mes a febrero, pero el filtro de año no tiene efecto, así que termino con publicaciones de feb 2011, feb 2010, etc.

Bobby Jack Bobby Jack
11 feb 2011 13:35:48

... y si lo cambio de "y=2011" a "year=2011", me redirige a /blogs/2011/02/ perdiendo así la categoría

Bobby Jack Bobby Jack
11 feb 2011 13:37:39