Question

Je veux utiliser une page de catégorie comme la page d'accueil de mon blog. Est-ce possible et comment puis-je le faire? Il a essayé avec une .htacces règle de réécriture, mais cela n'a pas fonctionné.

Était-ce utile?

La solution

Mise à jour

L'élimination de toutes les autres solutions, il y a au moins un reste: 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' );

Vous devrez passer la catégorie $id appropriée, bien sûr.

L'avantage de rediriger à template_redirect est que vous obtenez seulement un modèle ayant lieu-charge, au lieu d'une seconde redirection après les charges de modèle.

Notez que vous pouvez brancher dans le processus même plus tôt, comme à pre_get_posts, ce qui pourrait sauver des toute une demande de requête:

add_action( 'pre_get_posts', 'wpse121308_redirect_homepage' );

Réponse originale

Si tout ce que vous voulez faire est d'afficher une catégorie spécifique sur les messages blog index, vous pouvez accomplir cela avec un filtre simple du principal $wp_query à 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 vous voulez modifier le template , vous pouvez le faire de deux choses:

  1. Créer un home.php avec le balisage souhaité
  2. Utilisez template_redirect ou home_template pour WordPress de force pour inclure votre modèle category.php.

Modifier

Et si vous voulez que les messages du blog URL de l'index pour ressembler à:

www.example.com/main

Ensuite, vous pouvez utiliser un statique avant , et affecter une page statique appelée "principale" comme messages de blog index.

Et si cela est votre objectif:

  

Je veux vraiment la redirection. Je veux la page d'accueil (http://example.com/) pour rediriger vers la page de catégorie (qui ressemble à http://example.com/main/)

... alors la réponse acceptée est correcte pour votre cas d'utilisation.

Autres conseils

page Catégorie ne peut pas être la page d'accueil (n'a tout simplement pas travailler comme ça).

Il y a deux autres options:

  1. Limite page d'accueil à des postes de catégorie spécifique (proche, mais pas la même chose).
  2. Redirect page d'accueil à la page de catégorie réelle.

Puisque vous semblez bien avec redirect essayer de suivre. Créer un modèle de home.php dans votre répertoire thématique avec le contenu suivant:

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

Il y a probablement une façon plus propre de le faire avec des crochets, mais je ne peux rien penser à ce moment.

La façon la plus sémantique pour le faire au lieu d'utiliser une redirection (temps de connexion supplémentaire) est de créer un modèle de page personnalisé.

nouvelle page:

/* Template Name: New Homepage by Cat */

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

il suffit d'ajouter un filtre de catégorie dans votre requête index.php dans votre modèle. simples

Si vous souhaitez rediriger vers une catégorie catégorie particulière i.e. id 3 puis copiez le contenu de category.php et de faire un autre modèle comme catégorie 3.php Après cela,

    * Template Name: New Homepage by Cat 3*/

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

En lecture, nous devons wordpress à la maison comme jeu page messages et pour la page d'accueil, sélectionnez la nouvelle page d'accueil par Cat 3 comme modèle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top