Wordpress 4。x个
为什么loop.php
在中查看帖子时,仅在侧栏中显示当前帖子single.php
?
我有:
如果我查看“Post One”(single.php),侧栏仅显示“Post One”,如果我查看Wordpress admin中设置为“Blog”页面(index.php)的页面,我会在侧栏中看到所有帖子。
我的目标是在single.php
侧栏。最好删除当前的帖子!但主要是想了解这里的关系/结构。
使用基于的自定义主题HTML5 Blank theme, 无主要自定义功能。
第一个Wordpress站点,这感觉像是一个基本的结构方面。
sidebar.php
<aside class="sidebar column" role="complementary">
<?php get_template_part(\'searchform\'); ?>
<?php get_template_part(\'loop\'); ?>
<?php get_template_part(\'pagination\'); ?>
<div class="sidebar-widget">
<?php if(!function_exists(\'dynamic_sidebar\') || !dynamic_sidebar(\'widget-area-1\')) ?>
</div>
<div class="sidebar-widget">
<?php if(!function_exists(\'dynamic_sidebar\') || !dynamic_sidebar(\'widget-area-2\')) ?>
</div>
</aside>
loop.php
<?php if (have_posts()): while (have_posts()) : the_post(); ?>
<article class="loop-template" id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<!-- article content here -->
</article>
<?php endwhile; ?>
<?php else: ?>
<article>
<!-- else content here -->
</article>
<?php endif; ?>
然后在
single.php
我在打电话
<?php get_sidebar(); ?>
在任何循环或条件之外。
SO网友:Prestosaurus
启动new WP_Query($post)
显示所有帖子。贷记至@Latheesh V M Villa
添加:
$loop_query = new WP_Query($post)
然后更改循环值,如:
have_posts()
收件人:
$loop_query->have_posts()
<小时/>
loop.php
<?php $loop_query = new WP_Query($post); if ($loop_query->have_posts()): while ($loop_query->have_posts()) : $loop_query->the_post(); ?>
<article class="loop-template" id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<!-- article content here -->
</article>
<?php endwhile; ?>
<?php else: ?>
<article>
<!-- else content here -->
</article>
<?php endif; ?>
似乎可以将循环中的所有内容单独保留,例如
the_ID()
和
the_title()
.
伟大的文章smashingmagazine here