web-dev-qa-db-fra.com

Comment obtenir le contenu du message d'une catégorie sur ma page d'accueil

J'essaie d'obtenir des publications avec une catégorie spécifique à afficher dans une boîte sur ma page d'accueil. Mais ive seulement pu obtenir un poste sur ma page d'accueil. Comment puis-je faire fonctionner cela dans le code ci-dessous? Avec l'obtention du titre, extrait (limite le nombre de caractères - sans en savoir plus) et postez le lien (dans le bouton en savoir plus ci-dessous?)

echo '<section class="row"><div class="container-item">
            <div class="item">
            <div class="item-overlay">
            <div class="item-content">
            <div class="item-top-content">
            <div class="item-top-content-inner">
            <div class="item-product">
            <div class="item-top-title">
            <h2>';
            echo get_the_title();
            echo '</h2><p class="subdescription">';
            the_excerpt();
            echo '</p></div></div></div>
            <div class="item-add-content">
            <div class="item-add-content-inner">
            <div class="section">
            <a href="#" class="btn buy expand">Read More</a>
            </div>
            </div>
            </div>
            </div>
            </div>
        </div>
</section>';

MODIFIER:

Merci Pieter Goosen. Voici le code avec vos suggestions et quelques modifications mineures que j’ai finalement utilisé avec quelques jquery et css pour créer une jolie boîte coulissante:

function homepage_highlights() { ?>
<?php $my_query = new WP_Query('category_name=accommodation&posts_per_page=3'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<section class="row"><div class="container-item">

       <div class="item" <body style="background-image:url(<?php echo catch_that_image() ?>)">
        <div class="item-overlay">
        <div class="item-content">
        <div class="item-top-content">
        <div class="item-top-content-inner">
        <div class="item-product">
        <div class="item-top-title">
        <h3 class="title-front-page"><?php echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>'; ?>
        </h2></div>
    </div>
    </div>  
    </div>
    <div class="item-add-content">
    <div class="item-add-content-inner">
    <div class="section">
    <p class="subdescription">
        <?php the_excerpt(); ?>
    </p>

        </div>
   </div>
</div>
</div>
</div>
</div>
</section>
1
sander

Est-il vraiment nécessaire de faire autant d'écho? Si vous utilisez correctement les balises php d'ouverture et de fermeture, vous pouvez éliminer l'utilisation de echo. Et pourquoi faites-vous écho à get_the_title() quand il existe une fonctionnalité intégrée pour cela. the_title() fait exactement la même chose.

Vous pouvez utiliser WP_Query pour créer une boucle spéciale permettant d’obtenir des publications d’une catégorie spécifique. N'oubliez pas de réinitialiser votre boucle car vous allez commencer une nouvelle boucle. Pour plusieurs boucles, vérifiez également The Loop . Un seul conseil, l'auteur de cette page a utilisé query_posts, que vous ne devez absolument pas utiliser, utilisez WP_Query

En ce qui concerne l'extrait, vous pouvez modifier le lien lire plus comme suit

function new_excerpt_more( $more ) {
    return ' <---the code of your button here--->';
}
add_filter( 'excerpt_more', 'new_excerpt_more' );

Donc à la fin, votre code devrait ressembler à ceci

<?php $my_query = new WP_Query('category_name=special_cat&posts_per_page=10'); ?>

<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

<section class="row"><div class="container-item">
            <div class="item">
            <div class="item-overlay">
            <div class="item-content">
            <div class="item-top-content">
            <div class="item-top-content-inner">
            <div class="item-product">
            <div class="item-top-title">
            <h2>
            <?php the_title(); ?>
            </h2><p class="subdescription">
            <?php the_excerpt(); ?>
            </p></div></div></div>
            </div>
            </div>
            </div>
            </div>
        </div>
</section>

<?php endwhile; ?>
<?php rewind_posts(); ?>

<---Start your new loop here --->
0
Pieter Goosen