WordPress根据页面类型指定每页显示的文章数

 I believe the best way to do this in a plugin is to run the following sample function when the pre_get_posts action hook is encountered. The $wp_query object is available, meaning your conditional tags are available, but before WordPress gets the posts, which means you are changing query vars prior to the first query being run, rather than adding a second query like when query_posts() is used in a theme file.

is_home()    是否为主页

is_single()   是否为内容页(Post)

用法:<?php is_single($post); ?>

参数:$post 文章ID,文章标题或文章slug,可选,默认值为空

返回的值:逻辑值(true/false)

示例:

is_single()
判断是否是文章页面

is_single('2')/is_single(2)
判断是否是具体文章(id=2)的页面

is_single('Beef Stew')
判断是否是具体文章(标题为Beef Stew)的页面

is_single('beef-stew')
判断是否是具体文章(slug为beef-stew)的页面

is_single(array(2,'beef-stew','Irish Stew'));
判断是否是具体文章(id=2或者slug='beef-stew'或者标题为Irish Stew)的页面

is_page()    是否为页面页(Page)

用法:<?php is_page($page); ?>

参数:$page 页面ID,页面标题或者页面slug,可选,默认值为空

返回的值:逻辑值(true/false)

示例:

is_page()
判断是否是页面

is_page('42′)
id判断,即判断是否是id为42的页面

is_page('Contact')
判断标题,即判断是否是标题为Contact的页面

is_page('about-me')
slug判断,即判断是否是slug为about-me页面

id_page(array(42,'about-me','contact'))
判断是否是ID为42或者slug为about-me或者标题为Contact的页面

is_category()   是否为分类页(Category/Archive)

用法:<?php is_category($category); ?>

参数:$category  分类ID,分类标题或者分类slug,可选,默认值为空,类型为整型

返回的值:逻辑值(true/false)

示例:

is_category()
判断是否是分类

is_category('6′)
判断是否是ID为6的分类

is_category('Stinky Cheeses')
判断是否是标题为Stinky Cheeses的分类

is_category('cheeses')
判断是否是slug为cheeses的分类

is_category(array(9,'cheeses','Stinky Cheeses'))
判断是否是ID为9或者标题为Stinky Cheeses或者slug为cheeses的分类

is_category(array(6,7))
判断是否是ID为6或者7的分类

is_author()  是否是作者页面

用法:<?php is_author($author); ?>

参数:$author 作者ID或作者昵称,可选,默认值为空,类型为字符串

返回的值:逻辑值(true/false)

示例:

is_author('4′)
判断是否是ID为4的作者页面

is_author('Elite Hacker')
判断是否是昵称为Elite Hacker作者的页面

is_author(array(4,'Elite Hacker'))
判断是否是ID为4或者昵称为Elite Hacker的作者页面

is_tag()       是否为Tag存档页

is_date()     是否为指定日期存档页

is_year()     是否为指定年份存档页

is_month()   是否为指定月份存档页

is_day()      是否为指定日存档页

is_time()     是否为指定时间存档页

is_archive()  是否为存档页

is_search()   是否为搜索结果页

is_404()       是否为 “404: Not Found” 错误页

is_paged()   Home/Category/Archive页是否以多页显示

 

原文:http://wordpress.stackexchange.com/questions/21/show-a-different-number-of-posts-per-page-depending-on-context-e-g-homepage

发表评论