我有一个基于wordpress(二十三子模板)的单页网站。 标题内容页脚。 和3个帖子类别:类别A类别B类别C. 我需要将内容分成这3个类别/部分 - 就像这个
<div class="section_top">
all the posts from category A
</div>
<div class="section_mid">
all the posts from category B
</div>
<div class="section_bot">
all the posts from category C
</div>
当我开始阅读wordpress主循环,query_posts和WP_Query时,我有点困惑,最终我有这个代码替换主循环,所以我的问题是:
1这是正确的方法吗?
2如何给每个部分一个独特的类,因为我需要对每个部分进行不同的样式设计?
这里是代码(索引php(在子主题中)
<div id="primary" class="content-area">
<div id="content" class="site-content" role="main">
<?php
$args = array('category__in' => array(catA,catB,catC));
$category_posts = new WP_Query($args);
if($category_posts->have_posts()) :
while($category_posts->have_posts()) :
$category_posts->the_post();
?>
<div id="<?php
foreach((get_the_category()) as $category) {echo $category->cat_name . ' ';}?>"
class="post-item">
<div class="post-info">
<h2 class="post-title">
<a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>">
<?php the_title(); ?>
</a>
</h2>
</div>
<div class="post-content">
<?php the_content(); ?>
</div>
</div>
<?php
endwhile;
else:
?>
Oops, there are no posts.
<?php
endif;
?>
答案 0 :(得分:1)
您尝试解决问题的方法是,所有帖子仍按时间顺序显示,因此可能会发生这种情况:
Category A post 12/01
Category B post 09/01
Category A post 05/01
我建议:制作3个不同的WordPress循环,分别查询每个类别:
<div class="section_top">
WordPress loop for all the posts from category A
</div>
<div class="section_mid">
WordPress loop for all the posts from category B
</div>
<div class="section_bot">
WordPress loop for all the posts from category C
</div>
这种循环的例子:
// The Query
$the_query = new WP_Query('category_name=categoryA');
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
get_the _...()与_...()之间的区别
当您使用get_the_title()
之类的函数时,您可以将它们存储在PHP变量中,如下所示:
$title = get_the_title();
echo strtoupper($title); //do something with it later
当您使用the_title()
等函数时,标题会立即打印在页面上,因此不需要回显语句:
the_title();
注意:the_permalink()
有一个函数get_permalink()
,函数get_the_permalink()
不存在。不要问我为什么;)