侧边栏是我们在网站中经常看到的一部分,一般主要会包含搜索框、最新文章、随机文章、相关文章、推荐文章、标签等。它不仅可以提升用户体验度,让用户快速的找到自己想要的信息,不浪费用户的时间,还可以增加页面间的链接数量提高页面链接权重,所有wordpress侧边栏制作也是不可轻视的。
1、wordpress侧边栏之搜索框制作
wordpress自定义全站搜索框
<form class="search-form" method="get" action="<?php bloginfo('home'); ?>">
<input type="text" placeholder="搜索..." name="s" />
<button type="submit"> <i class="iconfont icon-search"></i> </button>
</form>
wordpress自定义搜索指定栏目分类 (value="" 为指定分类的id)
<form class="search-form" method="get" action="<?php bloginfo('home'); ?>">
<input type="text" placeholder="搜索..." name="s" />
<input type="hidden" name="cat" value="4,11,9,22,20,10,18,14,12,13,1" />
<button type="submit"> <i class="iconfont icon-search"></i> </button>
</form>
wordpress自定义不搜索该分类下的文章 (value="" 为指定分类的id)
<form class="search-form" method="get" action="<?php bloginfo('home'); ?>">
<input type="text" placeholder="搜索..." name="s" />
<input type="hidden" name="cat" value="-4,-11,-9,-22" />
<button type="submit"> <i class="iconfont icon-search"></i> </button>
</form>
2、wordpress侧边栏之最新文章调用
方法一:
<?php get_archives(‘postbypost’, 10); ?> (显示10篇最新更新文章)
方法二:query_posts() 函数
//showposts=6 显示6篇文章 cat=-3 不调用分类id为3的文章
<li>
<h2>最新文章</h2>
<?php query_posts('showposts=6&cat=-3'); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
</li>
方法三:WP_Query函数
//showposts=10 显示个数
<ul>
<?php $post_query = new WP_Query(‘showposts=10’);
while ($post_query->have_posts()) : $post_query->the_post();
$do_not_duplicate = $post->ID; ?>
<li><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
方法四:排除置顶的文章
<h2>最新文章</h2>
<ul>
<?php
$recentPosts = new WP_Query(array('post__not_in' => get_option('sticky_posts')));
?>
<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
<li> <a href="<?php the_permalink() ?>" rel="bookmark" class="title"><? echo get_the_title(); ?></a><?php the_time('m/d'); ?></li>
<?php endwhile; wp_reset_query();?>
</ul>
3、wordpress侧边栏之随机文章调用
//numberposts=10 为调用的文章数量
<?php
$rand_posts = get_posts('numberposts=10&orderby=rand');
foreach($rand_posts as $post):
?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach;?>
4、wordpress文章页侧边栏,相关文章调用
//WordPress相关文章
<div class="related_posts">
<h3>相关文章</h3>
<ul>
<?php
$post_num = 10;
$exclude_id = $post->ID;
$posttags = get_the_tags(); $i = 0;
if ( $posttags ) {
$tags = ''; foreach ( $posttags as $tag ) $tags .= $tag->term_id . ',';
$args = array(
'post_status' => 'publish',
'tag__in' => explode(',', $tags),
'post__not_in' => explode(',', $exclude_id),
'caller_get_posts' => 1,
'orderby' => 'comment_date',
'posts_per_page' => $post_num,
);
query_posts($args);
while( have_posts() ) { the_post(); ?>
<li><a rel="bookmark" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a></li>
<?php
$exclude_id .= ',' . $post->ID; $i ++;
} wp_reset_query();
}
if ( $i < $post_num ) {
$cats = ''; foreach ( get_the_category() as $cat ) $cats .= $cat->cat_ID . ',';
$args = array(
'category__in' => explode(',', $cats),
'post__not_in' => explode(',', $exclude_id),
'caller_get_posts' => 1,
'orderby' => 'comment_date',
'posts_per_page' => $post_num - $i
);
query_posts($args);
while( have_posts() ) { the_post(); ?>
<li><a rel="bookmark" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a></li>
<?php $i++;
} wp_reset_query();
}
if ( $i == 0 ) echo '<li>没有相关文章!</li>';
?>
</ul>
</div>
5、wordpress文章页侧边栏,所在分类下的文章列表
//numberposts=5 调用的文章数量
<?php if ( is_single() ) :
global $post;
$categories = get_the_category();
foreach ($categories as $category) :
?>
<li class="widget widget_recent_entries" id="<?php $category -> term_id; ?>-posts">
<h2 class="widgettitle"><?php echo $category -> name; ?></h2> //当前文章所在栏目
<ul>//下方为循环输出 所在栏目分类下的文章列表
<?php
$posts = get_posts('numberposts=5&category='. $category->term_id); //5为循环条数
foreach($posts as $post) :
?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
</li>
<?php
endforeach; endif ;
?>
6、调用指定分类子分类的文章
<?php $posts = get_posts( "category=4&numberposts=10" ); ?>
<?php if( $posts ) : ?>
<ul><?php foreach( $posts as $post ) : setup_postdata( $post ); ?>
<li>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
7、tag标签调用
wordpress tag标签调用,默认方式
<?php wp_tag_cloud(); ?>
带参数方式调用
<?php wp_tag_cloud(‘number=50&orderby=count&order=DESC&smallest=12&largest=12&unit=px’); ?>
smallest:标签文字最小字号,默认为8pt;
largest:标签文字最大字号,默认为22pt;
unit:标签文字字号的单位,默认为pt,可以为px、em、pt、百分比等;
number:调用的标签数量,默认为45个,设置为“0”则调用所有标签;
format:调用标签的格式,可选“flat”、“list”和“array”,默认为“flat”平铺,“list”为列表方式;
orderby:调用标签的排序,默认为“name”按名称排序,“count”则按关联的文章数量排列;
order:排序方式,默认为“ASC”按正序,“DESC”按倒序,“RAND”按任意顺序。
exclude:排除部分标签,输入标签ID,并以逗号分隔,如“exclude=1,3,5,7”不显示ID为1、3、5、7的标签;
include:包含标签,与exclude用法一样,作用相反,如“include=2,4,6,8”则只显示ID为2、4、6、8的标签。