在前面的章节中,我们修改好了wordpress主题trans的首页头部和左侧的代码,实现了我们想要的效果。今天,我们再来给trans主题首页的右侧边栏进行修改,把静态的代码修改成动态的。一般情况下,右侧边栏才是网站的主要侧边栏,而左侧一般是页面的主体部分。所以,右侧边栏大多是放置最新文章、热门文章排行等等这类信息。

我们打开trans主题的index.html静态模板,我们可以看到,它的右侧边栏主要有3个板块:最新文章、热门文章、热门标签。目前,它们的数据都是写死的,我们要实现的是:从wordpress数据库中调用数据,让这些数据活起来。

第一步:从wordpress数据库中调用10篇最新文章。

trans主题右侧边栏最新文章列表的静态代码如下:

< ul class="c_right_article">< a href="">aaaadadafdadfadfadfadf1</a>< a href="">aaaadadfadfadfads2</a>< a href="">aaaad3</a>< a href="">aaadadfadfadfadfsadfadfada4afdadfadfasd</a>< a href="">aaaadfadfadf5</a>< a href="">aaaaadfadfadfdf6</a> < /ul>

我们先把<ul>标签内的所有内容(所有a标签)都删除掉,变成如下代码:

< ul class="c_right_article"> </ul>

然后,在这个ul标签内部添加wordpress最新文章的调用代码:

< ?phpquery_posts('posts_per_page=10&caller_get_posts=1&orderby=new'); while (have_posts()) : the_post(); echo '< a href="'.get_the_permalink().'" title="'.get_the_title().'">';echo get_the_title(); echo '</a>';endwhile; wp_reset_query(); ?>

最新文章效果

代码中,我们用到了wordpress程序的一个查询函数——query_posts(),它的作用是:从wordpress数据库的wp-posts数据表中按条件查询文章。上面的代码中,给了3个条件:

posts_per_page=10 => 查询10篇文章;caller_get_posts=1 => 排除置顶文章;orderby=new => 排序按最新的

接着又用到了while循环语句。这里再强调一下,循环语句一定要结束它(endwhile) 或者用大括号把循环体包括起来。另外,使用了query_posts()查询语句,就一定要使用 wp_reset_query()来结束它,否则,后面的代码数据就可能会出错。

第二步:从wordpress数据库中调出10篇文章,按评论多少排序。

原静态模板右侧边栏中的热门文章代码如下:

< ul class="c_right_con">< div class="hot_left">< a href="/">< img src="./images/index_17.jpg" alt=""></a>< /div>< div class="hot_right">< li>< a href="/">百度站长工具抓取诊断失败的原因有哪些</a>< /li>< li>< span class="dashicons-before dashicons-calendar-alt">5月21日</span>< span class="dashicons-before dashicons-visibility">274</span>< /li>< /div>< /ul>

这是一篇热门文章的代码,我们要在右侧边栏显示10篇,所以,我们依然是要使用循环语句,修改后的代码如下:

< ?php query_posts('posts_per_page=8&caller_get_posts=1&orderby=comment_count'); while (have_posts()) : the_post(); ?>< ul class="c_right_con">< div class="hot_left">< a href="<?php the_permalink(); ?>">< ?php if(has_post_thumbnail()) { //如果有特色图片,就调用特色图片the_post_thumbnail( //直接显示特色图片'thumbnail' , //以缩略图的形式显示array( 'alt' => trim(strip_tags( $post->post_title )), //img标签的alt属性'title' => trim(strip_tags( $post->post_title )),//img标签的title属性'class' => 'home-thumb' )); }else { //否则调用文章第一张图片echo '< img src="'.catch_first_image().'" alt="'.$post->post_title.'" width="150" height="150" />';}?>< /a>< /div>< div class="hot_right">< li>< a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> < /li>< li>< span class="dashicons-before dashicons-calendar-alt"><?php the_time("y年m月d日"); ?> < /span>< span class="dashicons-before dashicons-visibility">< ?php get_post_meta($post->id,"views",true); ?> < /span>< /li>< /div>< /ul><?php endwhile; wp_reset_query(); ?>

热门文章效果

上面代码中的query_posts()参数,我们用到了 orderby=comment_count ,这表示按评论多少来排序文章。代码中其它的wordpress函数,我们在前面的章节中都已经介绍过,这里就不多说了。

第三步:从wordpress数据库中调用40个热门标签。

tag标签是wordpress的一个非常独特的内容,它可以像分类列表页一样地展示所有包含某个标签的文章列表,而那些所谓的搜索引擎,却非常地喜欢这个tag标签,收录量超大。闲话少说。我们先来看一下tras

< ul class="c_right_tag">< a href="">aaaadad1</a>< a href="">aaaad2</a>< a href="">aaaad3</a>< a href="">aaadsa4</a>< a href="">aaa5</a>< a href="">aaaadf6</a> < /ul>

我们也是先把ul标签里的所有a标签删除,如下:

< ul class="c_right_tag"> < /ul>

然后,在这个ul标签中添加tag热门标签的调用代码,如下:

<?phpwp_tag_cloud('number=40&orderby=count&order=desc&smallest=13&largest=13&unit=px'); ?>

热门标签效果

​上面的代码中,我们使用了wordpress提供的一个标签云函数wp_tag_cloud(),如要不添加任何参数,它会显示当前wordpress网站中的所有的tag标签。我们这里给它添加了6个参数:

number=40 => 显示多少个标签orderby=count => 按文章数量排序order=desc => 倒序smallest=13 => 字体最小13largest=13 => 字体最大13 ,要以根据自己的需求来设置大小unit=px => 字体的单位,px表示像素

通过上面的几步,我们就为wordpress主题trans的首页右侧边栏修改好,我们从wordpress数据库的中调用了最新发表的文章和热门文章、热门标签,让整个右侧边栏也动了起来,达到了我们想要的效果。当然,我们还可以给右侧边栏添加更多的功能模板,如:文章归档、日历、近期评论、广告等等,这些,我们需要根据自己或客户的需求而定。发子,本章就介绍到这里,如有疑问,欢迎点评和关注我。