当前位置: 首页 >wordpress

WordPress 模板制作笔记(分类目录)

wordpress 2015-8-4 阅读量: 402 TAG:

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>     &raquo;  
    <?php  
        if( is_single() ){  
            $categorys = get_the_category();  
            $category = $categorys[0];  
            echo( get_category_parents($category->term_id,true, '&raquo; ') );  
            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); ?>

来源:(微信/QQ号:909912499),欢迎分享本文,转载请保留出处!部分内容来自网络,如有侵权请联系删除处理!

相关信息

本站提供代码修改,dedecms,WordPress仿站二次开发 / PHP网站建设以及SEO优化等网络营销推广等服务。

如有需要请加QQ: 909912499