¿Cómo hacer que una página de categoría sea la página de inicio del blog?

3

Quiero usar una página de categoría como la página de inicio de mi blog. ¿Es eso posible y cómo puedo hacerlo? Lo intentó con una regla de reescritura de .htacces pero no funcionó.

    
pregunta 2ndkauboy 15.09.2010 - 19:24

5 respuestas

10

Actualizar

Eliminando todas las otras soluciones, queda al menos una: template_redirect :

function wpse121308_redirect_homepage() {
    // Check for blog posts index
    // NOT site front page, 
    // which would be is_front_page()
    if ( is_home() ) {
        wp_redirect( get_category_link( $id ) );
        exit();
    }
}
add_action( 'template_redirect', 'wpse121308_redirect_homepage' );

Tendrá que pasar la categoría apropiada $id , por supuesto.

El beneficio de redireccionar a template_redirect es que solo se realiza una carga de plantillas, en lugar de una segunda redirección después de que se cargue la plantilla.

Tenga en cuenta que puede conectarse al proceso incluso antes, como en pre_get_posts , con lo que potencialmente se puede guardar una solicitud de consulta completa:

add_action( 'pre_get_posts', 'wpse121308_redirect_homepage' );

Respuesta original

Si todo lo que quieres hacer es mostrar una categoría específica en el índice de publicaciones del blog, puedes lograr eso con un simple filtro de $wp_query en pre_get_posts :

function wpse1862_pre_get_posts( $query ) {
    // Only modify the main query
    // on the blog posts index page
    if ( is_home() && $query->is_main_query() ) {
        $query->set( 'category_name', 'category-slug-here' );
    }
}
add_action( 'pre_get_posts', 'wpse1862_pre_get_posts' );

Si desea modificar la plantilla , puede hacer una de estas dos cosas:

  1. Cree un home.php con el marcado deseado
  2. Use template_redirect o home_template para forzar a WordPress a incluir su plantilla category.php .

Editar

Y si quieres que la URL del índice de las publicaciones del blog se vea así:

www.example.com/main

Luego puedes usar una Página principal estática y asignar una página estática llamada "principal" como el índice de tu blog.

Y si este es tu objetivo:

  

Realmente quiero la redirección. Quiero que la página de inicio ( http://example.com/ ) redirija a la página de categoría (que se parece a http://example.com/main/ )

... entonces la respuesta aceptada es correcta para su caso de uso.

    
respondido por el Chip Bennett 05.11.2013 - 15:17
2

La página de categoría no puede ser la página de inicio (simplemente no funciona así).

Hay otras dos opciones:

  1. Limita la página de inicio a las publicaciones de una categoría específica (pero no la misma cosa).
  2. Redirigir la página de inicio a la página de categoría real.

Ya que parece estar bien con la redirección, intente seguir. Cree una plantilla home.php en su directorio de temas con el siguiente contenido:

<?php
wp_redirect( 'http://www.yoursite.com/category/category-slug' );
?>

Probablemente haya alguna forma más ordenada de hacer esto con ganchos, pero no puedo pensar en nada en este momento.

    
respondido por el Rarst 15.09.2010 - 19:38
2

La forma más semántica de hacer esto en lugar de usar una redirección (tiempo de conexión adicional) es crear una plantilla de página personalizada.

nueva página:

/* Template Name: New Homepage by Cat */

<?php query_posts('cat_id'=>'3');?>
<--insert loop-->
    
respondido por el Robbie Guilfoyle 06.01.2012 - 21:39
0

simplemente agregue un filtro de categoría a su consulta index.php en su plantilla. simples

    
respondido por el Mild Fuzz 15.09.2010 - 20:18
0

Si desea redireccionar a una categoría en particular, es decir, la identificación de categoría 3 luego copia el contenido de category.php y crea otra plantilla como category-3.php Despues de eso

    * Template Name: New Homepage by Cat 3*/

    <?php query_posts('cat_id'=>'3');?>
    <--insert loop-->

En Wordpress Reading, debemos configurar Home como página de publicaciones y para la página de inicio, seleccione la Nueva página de inicio por Cat 3 como plantilla.

    
respondido por el Kishore Sahoo 08.11.2013 - 11:59

Lea otras preguntas en las etiquetas