2010-10-11 5 views
2

J'essaye de placer ma page d'accueil de WordPress à une catégorie mais elle me permet seulement de la placer aux derniers messages ou à une page statique.Faire de la page d'accueil WordPress une catégorie de message?

Est-il possible de définir votre page d'accueil en tant que catégorie de message?

+1

Juste pour que vous savez, il y a un nouveau site uniquement axé sur Wordpress fait mes les mêmes personnes qui ont fait StackOverflow. http://wordpress.stackexchange.com/ Vous obtiendrez d'excellentes réponses ici. – jessegavin

Répondre

0

Vous pouvez créer un modèle personnalisé qui imite une page de catégorie en utilisant get_posts et définir une page utilisant ce modèle pour la maison, mais il ne sera pas parfaitement dynamique dans le sens où vous devez coder en dur le slug de catégorie ou ID dans cette requête. En supposant que vous ne voulez pas changer cette catégorie souvent, cela ne devrait pas être un problème. Alternativement, vous pouvez utiliser wp_safe_redirect dans un template pour rediriger vers la page de catégorie - ce serait si vous voulez que l'utilisateur soit placé directement sur la page de la catégorie réelle, l'URL et tout.

0

Je ne suis pas sûr de savoir ce que vous entendez par avoir votre page d'accueil en tant que catégorie, vous voulez dire que dans votre page d'accueil les messages qui seront affichés seront seulement d'une certaine catégorie?

0

Oui, cela est possible Accédez au tableau de bord >> Paramètre >> Lecture >> Page statique Choisissez la page dans la liste déroulante et SAVE. Sur cette page, vous pouvez créer vos propres trucs ...

3

J'espère que vous savez comment définir une page statique. Donc créez d'abord un fichier .php vide et nommez-le comme vous voulez et placez-le dans les autres fichiers (index.php, arhive.php etc).

puis entrez le code suivant

<?php 
/* 
* Template Name: Category based Homepage 
*/ 
?> 

<?php get_header(); ?> 
<div class="main"> 

    <?php 
    $cat_ID = '1'; //it should be your category ID, you can get the id of the category by going to categories and edit and then in url you can find the tag_ID. 
    $posts_to_show = '10'; // number of posts from the category you want to show on homepage 
    //query_posts("cat=$cat_ID&showposts=$posts_to_show"); 
    $category_posts = new WP_Query("cat=$cat_ID&showposts=$posts_to_show"); 
    //if (have_posts()) 
    if ($category_posts->have_posts()) 
     : $first = true; 
     ?> 
     <ul class="post-list"> 
      <?php 
      //while (have_posts()) : the_post(); 
      while ($category_posts->have_posts()) : $category_posts->the_post(); 
       if ($first) 
        $class = "first-in-row"; 
       else 
        $class = ""; 
       $first = !$first; 
       ?> 
       <!-- Start: Post --> 
       <li <?php post_class($class); ?>> 
        <?php the_post_thumbnail(); ?> 
        <p class="categories"><?php the_category(", "); ?></p> 
        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a> <?php edit_post_link(__('Edit', 'your_theme_text_domain'), '', ''); ?></h2> 
        <p class="post-meta"><span class="date"><?php the_time(get_option('date_format')) ?></span> <?php if (comments_open()) : ?>, <span class="comments"><?php comments_popup_link(_x('0', 'comments number', 'your_theme_text_domain'), _x('1', 'comments number', 'your_theme_text_domain'), _x('%', 'comments number', 'your_theme_text_domain')); ?></span> <?php endif; ?> <span class="author"><?php the_author() ?></span></p> 
        <?php the_excerpt(); ?> 
        <p class="more"><a href="<?php the_permalink() ?>"><?php _e('Read More &raquo;&raquo; ', 'your_theme_text_domain'); ?></a></p> 
        <?php if (has_tag()): ?><p class="tags"><span><?php the_tags(""); ?></span></p><?php endif; ?> 
       </li> 
       <!-- End: Post --> 
      <?php endwhile; ?> 
     </ul> 
    <?php else : ?> 
     <h2 class="center"><?php _e('Not found', 'your_theme_text_domain'); ?></h2> 
     <p class="center"><?php _e('Sorry, but you are looking for something that isn\'t here.', 'your_theme_text_domain'); ?></p> 
    <?php 
    endif; 
    //wp_reset_query(); 
    wp_reset_postdata(); 
    ?> 
</div> 
<?php get_sidebar(); //optional?> 
<?php get_footer(); ?> 

et remplacer cat_id $ et posts_to_show $ à votre goût. Et j'ai utilisé les deux méthodes de requête pour l'ajuster à vos besoins.

Espérons que cela aide quelqu'un qui cherche une solution similaire.

0

Vous n'avez besoin d'effectuer qu'une WP_Query avant la boucle;

$query = new WP_Query("cat=10, paged=".get_query_var('paged')); 

Ensuite, utilisez l'objet WP_Query pour effectuer la boucle;

if($the_query->have_posts()): 
    while($the_query->have_posts()): 
     the_title(); 
     the_content(); 
     //Use all the loop function normally 
    endwhile; 
endif; 

Le paramètre paginé est utilisé pour déterminer à quelle page vous êtes, si vous avez besoin de paginantion. Au lieu d'utiliser l'ID de catégorie, il est bon de récupérer l'ID par le slug.

$home = get_category_by_slug('home-category-slug'); 

Ensuite, votre requête sera comme celui-ci

$the_query = new WP_Query("cat=".$home->cat_ID.", paged=".get_query_var('paged')); 
Questions connexes