web-dev-qa-db-fra.com

Type de message personnalisé obtenir des catégories et des balises incorrectes

Ok, j'ai un type de message personnalisé sur mon blog appelé vidéos, où je poste seulement une vidéo. Il y a une casquette en bas

enter image description here

À droite, le dernier message du type de message personnalisé, à gauche, la vidéo et, sous la vidéo, la date et l'heure, la catégorie et les balises. Mais le problème est qu'il se trompe: étiquettes, catégories et date. Comment puis-je résoudre ce problème?

voici le code de cette page de modèle ci-dessous

<?php
/*
Template Name: Single Videos
*/
?>
<?php get_header() ?>

<div id="wrapper">

<div id="container">

<div id="contentfull">



    <?php the_post() ?>

        <div class="entry-wide">
            <center><h2 class="page-title2"><?php the_title() ?></h2>     </center>

            <div class="entry-videoo">
 <?php the_content() ?>



 <?php wp_link_pages('before=<div class="page-link">' . __( 'Pages:', 'wpbx' ) . '&after=</div>') ?>


            </div>

 <div id="videosidebar">

 <?php
 $queryObject = new WP_Query( 'post_type=videos&posts_per_page=20&orderby=Rand' );
 // The Loop!
 if ($queryObject->have_posts()) {
?>

<?php
while ($queryObject->have_posts()) {
    $queryObject->the_post();

    ?>

 <table width="100%" border="0" cellspacing="0" cellpadding="0">

 <tbody>

 <tr>

 <td valign="top" width="1%">
 <div id="videoimg"><a href="<?php the_permalink(); ?>" title="<?php printf(__( 'Read %s', 'wpbx' ), wp_specialchars(get_the_title(), 1)) ?>">
                    <?php the_post_thumbnail('video-post'); ?>
                    </a></div>
 </td>

 <td valign="top" width="90%">
   <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
 </td>

 </tr>


 </table>
 <?php
 }
 ?>
 <?php
 }
 ?>
 </div>

 <div class="entry-info">

 <div class="entry-meta-top">
                    <span class="entry-date"><font color="#e60288"><b><?php the_time(__('F jS, Y', 'kubrick')) ?></b></font></span>
                    <span class="entry-meta-sep">|</span>
                    <span class="entry-cat">Published in: <?php the_category(', '); ?> </span>


 <div id="sharing">
 <span class='st_facebook_hcount' st_title='<?php the_title(); ?>' st_url='<?php the_permalink(); ?>' displayText='share'></span><span class='st_Twitter_hcount' st_title='<?php the_title(); ?>' st_url='<?php the_permalink(); ?>' displayText='share'></span><span class='st_plusone_hcount' st_title='<?php the_title(); ?>' st_url='<?php the_permalink(); ?>' displayText='share'></span></div>
            </div>

 <br>
 <?php the_tags( __( '<span class="tag-links"><strong>More On:</strong> ', 'wpbx' ), ", ", "</span>\n" ) ?>


 <div class="entry-content">
                    <?php the_excerpt(); ?>
                </div>


 </div>

 <div class="entry-commm">

 <?php comments_template(); ?></div>


        </div><!-- entry -->





</div><!-- #contentfull -->
</div><!-- #container -->
</div><!-- #wrapper -->

 <?php get_footer() ?>
1
Terrell Anderson

Le problème réside dans la façon dont vous affichez les vidéos sur le côté. Quelque part, vous parcourez des publications pour produire cette liste. Notez que le dernier message de cette liste sur la capture d'écran est une interview avec une fois une fois - et c'est ce que les catégories et les balises sont liés à.

Pourquoi cela arrive-t-il?

WordPress stocke une variable globale $post qui est supposée être la publication (objet) en cours de visualisation, et c’est ce que les fonctions WordPress utilisent pour afficher des éléments tels que des catégories, des balises, etc. liés à cette publication.

Dans ce cas, le $post global a été modifié lors de l'affichage des listes de la barre latérale. Probablement parce que vous avez utilisé WP_Query ou (pire) query_posts ( voir cet avertissement ) ou vous avez utilisé (recommandé) get_posts mais au fur et à mesure que vous avez parcouru le boucle, vous avez déclaré que la publication en cours était globale (soit en déclarant global $post, soit en utilisant la méthode the_post()).

Ainsi, au fur et à mesure que vous parcourez la boucle, vous écrasez la variable globale $post jusqu'à la dernière variable, qui reste ensuite sur cette publication. C'est pourquoi vous voyez les catégories et les tags de cet article.

Comment le réparer...

Cela dépend de la façon dont vous avez fait la boucle. Vous pouvez utiliser wp_reset_postdata si vous avez utilisé l'objet WP_Query. Ou, si vous avez utilisé le get_posts, ne déclarez pas la publication comme globale et transmettez plutôt ses identifiants aux fonctions. Alternativement, vous pouvez stocker le global $post original (c’est-à-dire la publication principale) dans une variable temporaire et le réinitialiser après la boucle. Voir un exemple de cela ici .

J'espère que cela pourra aider!

1
Stephen Harris

Merci à Steven, j'ai trouvé le bon endroit pour entrer le wp_reset_postdata

<?php
}
?>
<?php
}
?>

et voici où vous ajoutez le code

<?php
}
?>
<?php wp_reset_postdata()
}
?>
0
Terrell Anderson