Bonjour,

J'essaie d'afficher sur mon home page la plus récentes news donc voici mon code :

<?php // << PREMIER PHP
    $recentPosts = new WP_Query();
    $recentPosts->query('showposts=1');
?>
<body <?php body_class(); ?>>
<div class="center" id="general">

    <section id="nav">
        <h5>featured</h5>
        <div id="featured">
                <small>Integer arcu nibh, congue vel efficitur sed, semper vel turpis. |</small>
                <small>Ut mauris magna, ullamcorper ac pellentesque dapibus, volutpat at felis. | </small>
                <small>Fusce pellentesque urna vel porta maximus de la vida a ...</small>
        </div>
    </section>

        <div id="search"><?php get_search_form(); ?></div>

    <?php if(is_home()): ?>

    <section id="main_post">
        <section id="n_photo">
            <div id="gradient">
                <?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
                <div>
                    <i class="btn white"><?php the_category(); ?></i> // << ICI JE VOUDRAIS QUE CA AFFICHE LA CATEGORIE
                    <h3><?php the_title(); ?></h3>
                    <p><?php echo substr(get_the_content(), 0, 301) . '...'; ?></p>
                </div>
                <div>
                    <i class="btn white large"> en savoir plus</i>
                </div>
                <?php endwhile; ?>
            </div>
        </section>

        <section id="sidebar">
            <div id="logo">
                <h4>Habbo<b>pedia</b></h4>
            </div>
        </section>

    </section>

<?php endif; ?>

<?php get_category_template() ?>
</ul>
</div>

Et donc en faite mon soucis est que la catégorie ajoute des balises aussi, donc je voudrais les enlevers. (a, ul, li).
Je pensais a enlever dans wp-includes/category-templates.php ?
Mais je ne sais pas quoi enlever clairement dans le fichier.

4 réponses


Khalysto
Réponse acceptée

Bonjour,

Ce comportement est normal, <code>the_category</code> permet de récupérer une liste de toutes les catégories de ton post (Voir codex)
Il ne faut <strong>jamais</strong> éditer le core de WP. Tu peux passer par des filters ou des actions pour modifier le comportement de base, mais <strong>jamais</strong> modifier la base elle même !

Si tu veux récupérer seulement 1 catégorie, tu peux faire quelque chose comme ça (en admettant que tu veuilles récupérer la première catégorie)

$cats = get_the_category();
$cat = $cats[0];

EDIT : Je me permet de rajouter, après lecture de ton code, qu'il faut penser à tester que ta query n'est pas vide.

Au lieu de
<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
<?php endwhile; ?>

Il vaut mieux mettre
<?php if($recentPosts->have_posts()) : while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
<?php endwhile;endif; ?>

Ce qui permet d'afficher un message si jamais tu n'as pas de posts :)

Mag Ouille
Auteur
Réponse acceptée

Merci à tous, je change ça.

J'ai juste un soucis c'est que je cherche a récupérer la thumbnail du post donc j'utilise ca :

<?php echo'style="background: url(' . implode(wp_get_attachment_image_src(get_post_thumbnail_id())) . ') bottom no-repeat; background-size: cover;"'; ?> 

<< Je me ca dans une div.

Mais le problème est que ca me ressort le lien :

style="background: url(http://habbtipsdev.net84.net/wp-content/uploads/2015/10/wallpaper_dinerFE.png1536820) bottom no-repeat; background-size: cover;"

Et il y a des chiffres derrières : 1536820 qui ne devrait pas y être auriez vous une solution ?

Ne jamais toucher au fichiers qui se trouvent dans wp-includes. C'est une partie du cœur de wordpress, si tu y touche, à la prochaine mise à jour, ça saute.

Tu as une fonction exprès ----> <code>the_post_thumbnail()</code>
Tu devrais quand même savoir taper dans Google : "wordpress get post thumbnail" je pense. Le premier résultat est en général la page du codex...