gpt4 book ai didi

php - 为什么它会给出随机的帖子 ID

转载 作者:行者123 更新时间:2023-11-27 23:19:35 24 4
gpt4 key购买 nike

我正在构建一个 WordPress 主题。我在评论部分遇到了一些麻烦。当显示评论时,它会随机获得帖子 ID。

我已将相同的代码放在两个不同的位置,首先它位于顶部,但在底部它不起作用。谁能告诉我为什么这在底部不起作用?!

这是我的single.php 文件

<?php get_template_part('/template-parts/standard-post-header');  ?>
<main role="main">
<!-- section -->
<section>
<div class="container background-color">
<?php if (have_posts()): while (have_posts()) : the_post(); ?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

<?php if (has_post_video( isset($post_id) ) != null) {
// Featured VIDEO -->
get_template_part('/template-parts/featured-video-post');
// END Featured VIDEO -->
} else { ?>

<!-- Featured Image -->
<?php $header_type = get_post_meta(get_the_id(), 'meta-box-dropdown', true); ?>

<?php if ($header_type == 'Slider') {
// SLIDER Header
get_template_part('/template-parts/featured-slider-post');
?>

<?php } else {
// SLIDER Header
get_template_part('/template-parts/featured-normal-post');
} ?>
<!-- END Featured Image -->
<?php } ?>

<div class="container container-post-color">
<div class="content">
<?php the_content(); ?>
<?php edit_post_link(); ?>
</div>
</div>

<?php
global $post;
echo $post->ID;
?>

<ol class="commentlist">
<?php
//THIS WORKS!!!
$comments = get_comments(array(
'post_id' => $post->ID,
'status' => 'approve'
));


wp_list_comments(array(
'per_page' => 10,
'reverse_top_level' => false
), $comments);
?>
</ol>

<!-- Post Navigation -->
<div class="container container-post-color top-space" style="padding-left: 0px; padding-right: 0px;">
<div id="left-side"><?php previous_post_link(); ?></div>
<div id="right-side"><?php next_post_link(); ?></div>
<?php echo wp_link_pages(); ?>
</div>

<!-- Tags -->
<div class="tags-area">
<?php echo the_tags(); ?>
</div>

<!-- Related Articles -->
<?php get_template_part('/template-parts/related-articles'); ?>

<!-- Coments Part -->
<?php //get_template_part('/template-parts/comments'); ?>

<?php
global $post;
echo $post->ID;
?>

<ol class="commentlist">
<?php
//THIS DOES NOT WORKS!!! WHY?!
$comments = get_comments(array(
'post_id' => $post->ID,
'status' => 'approve'
));


wp_list_comments(array(
'per_page' => 10,
'reverse_top_level' => false
), $comments);
?>
</ol>

</article>
<!-- /article -->
</div>
<!-- END of Container-Fluid -->

<?php endwhile; ?>
<?php else: ?>

<!-- article -->
<article>
<div class="container background-color">
<h1 class="black mastheading-post"><?php _e( 'Sorry, nothing to display.', 'html5blank' ); ?></h1>
</div>
</article>
<!-- /article -->

<?php endif; ?>
</section>
<!-- /section -->
</main>


<!-- INSTAGRAM -->
<?php get_template_part('/template-parts/instagram'); ?>


<?php get_footer(); ?>

related-articles.php

<div class="container container-post-color" style="padding-left: 0px; padding-right: 0px;">
<div class="random">
<ul>
<?php $posts = get_posts('orderby=rand&numberposts=4'); foreach($posts as $post) { ?>
<div class="col-md-3 padding-zero">
<li>
<div class="random-thumb">
<?php the_post_thumbnail('full'); ?>
</div>
<div class="random-title">
<h1 class="black mastheading"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1>
</div>

<div class="black iltalica"><?php echo excerpt(25); ?></div>

<div class="category">
<div class="random-category">
<h5><?php echo the_category();?></h5>
</div>
</div>

</li>
</div>
<?php } ?>
</ul>
</div>
</div>

最佳答案

所以首先,因为你在循环中,所以你在任何地方都使用了 global $post; ... $post->ID 你应该可以使用 get_the_ID() 代替。

其次,我强烈怀疑问题出在您的模板部分 /template-parts/related-articles 可能弄乱了 main loop .我建议您查看该文件,看看它本身是否在一系列帖子上循环 - 很可能它没有以一种可以在主循环内重复使用的方式干净利落地进行。

如果您需要帮助解决问题,您可以将该文件的代码添加到您的问题中。

更新

好的,确实如此,您需要在 related-articles 循环之后重置循环数据:

...
<?php
}
wp_reset_postdata(); // <----- add this after your loop
?>
</ul>
...

希望这对您有所帮助!

关于php - 为什么它会给出随机的帖子 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41728066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com