我完全不确定我是否只是失明但是还没有100%习惯使用wordpress,并希望得到一些帮助。
我的博客帖子页面显示了所有博客帖子,它也在侧栏中有类别但是当选择了一个类别时,它会使用/ categories / events更改URI,但不会将帖子内容限制为应该包含的内容类别?
<?php get_header(); ?>
<div class="container posts">
<div class="row">
<div class="col-xs-8 col-md-8">
<?php
$args = array (
'post-type' => 'post'
);
$post_query = new WP_Query($args);
if ($post_query->have_posts())
while ($post_query->have_posts()) {
$post_query->the_post();
?>
<div class="post">
<?php
the_post_thumbnail( 'large' );
echo '<a href="' . get_permalink() . '">';
the_title('<h2>', '</h2>');
echo '</a>';
the_excerpt();
echo do_shortcode( "[icon name='fa-calendar-o']" ) . " ";
the_date("d F");
?>
</div>
<?php
}
?>
</div>
<div class="col-xs-4 col-md-4">
<?php get_sidebar(); ?>
</div>
</div>
</div>
有什么想法吗?这是一个完整的自定义WP主题,从头到尾所以我可能会遗漏一些非常简单的东西,如果有人知道那是什么我会非常感激。
答案 0 :(得分:0)
在加载index.php
页面之前,WordPress会根据页面网址/参数为您设置WP_Query
对象。所以在主要博客帖子页面上,它将是一个查找所有帖子的查询;在Foo类别页面上,它将是查找Foo类别中所有帖子的查询。
在您现有的代码中,您忽略了预先设置的查询对象并创建了一个新的查询对象$post_query
,它总是只抓取所有帖子。这就是为什么在查看类别时结果不会改变的原因。
您应该转储特殊创建的$post_query
对象,并使用基本的WordPress“The Loop”代码:
if (have_posts())
while (have_posts()) {
the_post();
...
这将使用WordPress为您设置的WP_Query
对象。通常情况下,除非您做一些与众不同的事情,否则不会创建自己的WP_Query
对象。