web-dev-qa-db-fra.com

Ajout de "dernières nouvelles du blog" à la page d'accueil

J'ai un gros problème et je ne sais pas comment le résoudre :) Je souhaite ajouter un "module" à ma page d'accueil (page d'accueil statique, pas de messages de blog) qui affichera les 2 derniers messages de blog d'une manière très particulière et renverra à leur. Les articles ne s'afficheraient que sur la page d'accueil et non sur une autre page, mais le modèle php utilisé pour la page est partagé avec toutes les pages personnalisées.

En voici un rapide aperçu

Photo of a paper sketch

SEOmoz est un site qui fait très bien cela sur leur page d'accueil (mais je n'ai pas besoin de beaucoup de fonctionnalités, seul le titre du blog, le pouce, l'extrait et le lien pour en savoir plus)

Screenshot from seomoz.org

Y a-t-il un moyen simple de faire cela? (plugins, code que vous pouvez copier/coller de n'importe où?) ou puis-je payer quelqu'un pour l'écrire pour moi?

2
Teekay

Personnellement, j'aime bien utiliser get_posts() ( référence du Codex ) pour les boucles rapides et sales.

Dans votre fichier de modèle front-page.php, essayez ce qui suit:

<?php

// Create a variable to hold our custom Loop results
$frontpageposts = get_posts( array( 
     'numberposts' => 2 // only the 2 latest posts
) );

// Create output only if we have results
// Customize to suit your HTML markup
if ( $frontpageposts ) { 

     foreach ( $frontpageposts as $fppost ) { 
          // setup postdata, so we can use template tags
          setup_postdata($fppost);
          ?>

          <div <?php post_class(); ?>>
               <h2><a href="<php the_permalink(); ?>"><?php the_title(); ?></a></h2>
               <div class="post-entry">
                    <?php the_post_thumbnail(); ?>
                    <?php the_excerpt(); ?>
               </div>
          </div>

<?php }
} 
?>

Encore une fois, vous devrez modifier le balisage HTML en fonction de vos besoins.

1
Chip Bennett

Belle écriture :)

Cela peut être fait simplement en vérifiant si la page en cours est à la maison et en récupérant les deux derniers articles de blog.

    <?php
        if ( is_home() ) {

            query_posts("posts_per_page=2");
        }

        // run the Loop

        if ( have_posts() ) : while ( have_posts() ) : the_post(); 

    ?>

<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>

<?php endwhile; ?>

<?php endif; ?>

Cela affichera les titres d'articles de blog liés aux articles de blog eux-mêmes. Insérez toute autre fonction permettant de récupérer les informations dont vous avez besoin (par exemple, the_excerpt ()).

Vous pouvez ajouter des paramètres à votre requête pour la rendre plus précise, par exemple, récupérer uniquement les publications d’une catégorie spécifique.

0
Fred Rocha

Une méthode encore plus simple consiste à créer un fichier page-x.php dans votre thème. X est l'ID de la page que vous allez utiliser comme page d'accueil. Cela suppose que vous avez un accès FTP que vous devez depuis que vous pouvez créer des fichiers. Par exemple, page-2.php serait le modèle utilisé pour la page d'exemple WordPress par défaut. Mais vous ne pouvez pas simplement utiliser if (have_posts ()) puisque vous êtes sur une page et que cela affichera le contenu de la page sur laquelle vous vous trouvez.

Il serait préférable d'utiliser un WP_Query.

$news = new WP_Query( array(
                           'category_name'=>'news',
                           'posts_per_page' => 2
                           )
                    );

if ($news->have_posts()) while ($news->have_posts()) : the_post(); ?>

Puis continue avec ta boucle. Faites-moi savoir si vous avez besoin de plus de détails. Où j'ai

'category_name' => 'news'

'news' devrait être remplacé par le SLUG de votre catégorie.

0
Chadster_BAM