。。。首先,我使用两个循环,我相信其中一个可以工作。。。
我认为在这里一个查询都不容易。如果所有操作都在一个数据库查询中完成,那么维护代码也可能很困难。五个查询(您运行的四个查询加上WordPress运行的主查询)非常多,但缓存可以帮助减少每个页面视图运行的平均查询数。
。。。第二,结果显示在一列,我需要它们排成一行。
这可以使用CSS修复。在Google上搜索horizontal lists 有关使用列表执行此操作的CSS示例(<ul>
和<ol>
). 很容易将类似的样式应用于div。
代码中还有一些其他问题需要解决。
首先,看起来城市分类法中只有一个城市,并测试get_the_terms()
对于null
这还不够好。get_the_terms()
可以返回WP_Error object.
$terms = get_the_terms( $post->ID , \'city\' );
if ( $terms != null ) {
foreach( $terms as $term ) {
print $term->name ;
unset($term);
}
}
这是一个用户定义的函数,用于将城市(或空字符串)回显到当前帖子的浏览器。将此函数定义放在文件的底部。
function wpse_117541_the_post_city() {
global $post;
$terms = get_the_terms( $post->ID , \'city\' );
if ( $terms && ! is_wp_error( $terms ) )
echo $terms[0]->name;
echo \'\';
}
注意:我没有完全测试这个函数。
在代码中,您可以这样使用它:
<h5 id="city" class="h5"><span><?php wpse_117541_the_post_city(); ?></span></h5>
秒,每个HTML
id
属性必须唯一。它不能在网页上出现多次。
在代码中,此HTML代码显示在行循环中:
<div id="homeclub">
<div class="homethumb">
<?php the_post_thumbnail() ?>
<h5 id="city" class="h5"><span><?php wpse_117541_the_post_city(); ?></span></h5>
</div>
<h4 id="home" class="h4"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
<h6 id="home" class="h6"><?php the_date( \'F j Y\' ); ?></h6>
<div class=\'post-content\'><?php the_excerpt() ?></div>
</div>
如果有1行4列,则将有4列
homeclub
和8
home
id
属性。使用与元素名称相同的类名不会给您带来太多好处。在CSS中,
h4
可以使用
h4
选择器。添加HTML
class
仅允许您使用
.h4
作为选择器。
您可以使用此选项:
<div class="home-club">
<div class="thumb">
<?php the_post_thumbnail() ?>
<h5 class="city"><span><?php wpse_117541_the_post_city(); ?></span></h5>
</div>
<h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
<h6><?php the_date( \'F j Y\' ); ?></h6>
<div class=\'post-content\'><?php the_excerpt() ?></div>
</div>
在样式表中,使用这些
CSS selectors 要设置每个零件的样式,请执行以下操作:
.home-club {}
.home-club thumb {}
.home-club h5 {} or .home-club .city {}
.home-club h4 {}
.home-club h6 {}
.home-club post-content {}
{}
将包含HTML的该部分的样式(如果有)。我用过
home-club
因为我喜欢用破折号分隔类名中的单词。
第三,你只需要使用wp_reset_postdata()
在完成所有自定义循环之后。这样做的目的是重置post数据(每次调用the_post()
方法),用于WordPress用于访问此页面的查询。
您可以重置数据,以便其他代码(例如小部件代码)将看到预期的主查询数据,而不是预期的自定义查询数据。打几次电话可能没什么坏处,但这是不必要的。