WordPress 模板制作笔记(分类目录)
1.当前位置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <a href="<?php bloginfo('url'); ?>"><?php bloginfo('name'); ?></a> » <?php if( is_single() ){ $categorys = get_the_category(); $category = $categorys[0]; echo( get_category_parents($category->term_id,true, '» ') ); the_title(); } elseif ( is_page() ){ the_title(); } elseif ( is_category() ){ single_cat_title(); } elseif ( is_tag() ){ single_tag_title(); } elseif ( is_day() ){ the_time('Y年Fj日'); } elseif ( is_month() ){ the_time('Y年F'); } elseif ( is_year() ){ the_time('Y年'); } elseif ( is_search() ){ echo $s.' 的搜索结果'; } ?> |
2.当前栏目名称:
分类名称与链接
1 | <?php the_category(); ?> |
分类页面调用当前分类名称
1 | <?php single_cat_title(); ?> |
文章页调用当前文章所属分类名称
代码1
1 2 3 4 5 6 | <?php foreach((get_the_category()) as $category) { echo $category->cat_name; } ?> |
代码2
1 2 3 4 | <?php $category = get_the_category(); echo $category[0]->cat_name; ?> |
代码3
1 | <?php $thiscat = get_category($cat); echo $thiscat ->name;?> |
调用分类名称别名
1 2 3 4 5 | if(is_category()) { $cat = get_query_var('cat'); $yourcat = get_category($cat); echo "该分类别名为" . $yourcat->slug; } |
3.当前分类目录文章数量
1 2 3 4 5 6 | <?php global $post; $categories = get_the_category($post->ID); //var_dump($categories) echo $categories[0]->category_count; ?> |
eg:在文章页通过指定的文章ID获取此文章所属分类的相关信息。如分类名称,分类别名,分类描述,分类所包含的文章数。
1 2 3 4 5 6 7 8 9 | <?php global $post; $categories = get_the_category($post->ID); //var_dump($categories); echo $categories[0]->cat_name; echo $categories[0]->category_nicename ; echo $categories[0]->category_description ; echo $categories[0]->category_count; ?> |
返回值各项含义:
cat_ID
分类id
cat_name
分类名
category_nicename
一个slug,也就是系统根据分类名生成的url友好的名字
category_description
分类描述
category_parent
父分类id
category_count
该分类包含多少篇日志或者该分类被使用了多少次
4.分类目录内容
1 2 3 4 5 6 7 | <?php $posts = query_posts($query_string . '&orderby=date&showposts=16'); ?>//列表显示个数 <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <a href="<?php the_permalink() ?>" target="_blank"><?php the_title_attribute(); ?></a> <?php endwhile; ?> <?php else : ?> <?php endif; ?> |
修改WordPress文章默认排序
方法(1)找到类似下面的这段话:
1 | while(have_posts()) |
修改成下面的样子:
1 2 3 4 5 6 7 8 | $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args=array( 'orderby' => 基于排序的对象, 'paged' => $paged, 'order' => 'DESC' ); query_posts($args); while(have_posts()) |
其中,“基于排序的对象”可以是文章的任何属性,比方:”id”, “title”, “date”。
方法(2)搜索代码:
1 | while (have_posts()) |
将其替换成:
1 2 3 4 5 6 7 8 | $args = array( 'meta_key' => 'sort', 'orderby' => array('meta_value_num' => 'DESC', 'date' => 'DESC') // 须 WordPress 4.0 及以上版本 ); $arms = array_merge($args, $wp_query->query); query_posts($arms); while (have_posts()) |
接着搜索:
1 | endwhile; |
将其改成:
1 | endwhile;wp_reset_query(); |
给之前发表的所有文章添加自定义字段(或者称作自定义栏目,在文章编辑页底部可以看到),名称为 sort ,值填数字。这样在首页,文章的排列顺序就按照sort字段的值,从大到小排列了。通过修改sort字段的值,可以达到自定义文章排列顺序的目的。
需要注意的是,通过以上修改后,你必须给所有文章添加自定义字段sort,否则没有添加sort字段的文章将无法在首页显示。这也许就是手动排序需要付出的代价吧,要不然何谓手动?
如果你同时想手动修改标签页、分类页等存档页面的文章排列顺序,同样可以按照第一步介绍的方法来操作,修改主题目录下的archive.php等。
5.分页:
(1)将下面的代码放到 functions.php ?> 的前面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //分页 function par_pagenavi($range = 9){ global $paged, $wp_query; if ( !$max_page ) {$max_page = $wp_query->max_num_pages;} if($max_page > 1){if(!$paged){$paged = 1;} if($paged != 1){echo "<a href='" . get_pagenum_link(1) . "' class='extend' title='跳转到首页'> 返回首页 </a>";} previous_posts_link(' 上一页 '); if($max_page > $range){ if($paged < $range){for($i = 1; $i <= ($range + 1); $i++){echo "<a href='" . get_pagenum_link($i) ."'"; if($i==$paged)echo " class='current'";echo ">$i</a>";}} elseif($paged >= ($max_page - ceil(($range/2)))){ for($i = $max_page - $range; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'"; if($i==$paged)echo " class='current'";echo ">$i</a>";}} elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){ for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "<a href='" . get_pagenum_link($i) ."'";if($i==$paged) echo " class='current'";echo ">$i</a>";}}} else{for($i = 1; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'"; if($i==$paged)echo " class='current'";echo ">$i</a>";}} next_posts_link(' 下一页 '); if($paged != $max_page){echo "<a href='" . get_pagenum_link($max_page) . "' class='extend' title='跳转到最后一页'> 最后一页 </a>";}} } |
(2)在需要显示的地方(比如主题的 index.php、archive.php、category.php、search.php)中添加下面的调用代码即可
1 | <?php par_pagenavi(9); ?> |
浅唱6(微信/QQ号:909912499),欢迎分享本文,转载请保留出处!部分内容来自网络,如有侵权请联系删除处理!
相关信息
本站提供代码修改,dedecms,WordPress仿站二次开发 / PHP网站建设以及SEO优化等网络营销推广等服务。
如有需要请加QQ: 909912499