我们可以到自己的博客后台管理系统的外观里面的themeditor里面看到这里页面(不同主题页面是不一样的,下面都是以我的主题为例)
style.css(自定义样式表)这里就是可以加上自己定义的css样式,它可以对自己主题的任何页面生效
function.php(模板函数)这里主要是放了很多主题的一些函数,自己也可以在这里加上自己的函数然后调用
comments.php(评论)这里是评论板块的页面,如果需要修改样式可以在这里修改
footer.php(主题页脚)这里就是任何页面的页脚,主要用来显示版权信息还有放各种js脚本的地方
header.php(主题页眉)这里是最上面的部分,主要是显示导航栏还有一些css以及js的地方
index.php(首页模板)这里是自己主题的首页,用来显示主页的,大家可以在这里修改主页风格
options.php(设置模板)这里是我主题自己的一个设置界面,有的主题不一定有这个
page-archive.php(归档的模板)凡是前面带有page-的就是页面模板,大家在新建页面的时候就可以选择相应模板(比如我选这归档模板后这个页面就可以用来显示自己的文档归档)
page.php(单独页面)这里就是自己新建页面的默认模板
srearch.php(搜索结果模板)这里主要是用来展示搜索结果的
siderbar.php(边栏)这里就是我们页面的边栏显示的函数
single.php(文章页面)这里就是文章页面的界面,所有文章页面都是通过这个模板来显示的
还有一些其他的我就不介绍了。
下面我介绍一些常用的wordpress函数,这里可以用在自己需要修改的任何页面。
<?php site_url(); ?> | 站点根链接 |
<?php wp_title(); ?> | 文章或者静态页面标题 |
<?php bloginfo(‘name’); ?> | 站点名称 |
<?php bloginfo(‘description’); ?> | 站点描述 |
<?php get_stylesheet_directory(); ?> | 样式文件所在目录 |
<?php bloginfo(‘stylesheet_url’); ?> | 样式文件链接 |
<?php bloginfo(‘pingback_url’); ?> | pingback 链接 |
<?php bloginfo(‘template_url’); ?> | 模板文件所在目录链接 |
<?php bloginfo(‘version’); ?> | WordPress 版本 |
<?php bloginfo(‘atom_url’); ?> | atom 链接 |
<?php bloginfo(‘rss2_url’); ?> | rss2 链接 |
<?php bloginfo(‘url’); ?> | 网站根链接 |
<?php bloginfo(‘html_type’); ?> | html 版本 |
<?php bloginfo(‘charset’); ?> | 字符集 |
上面这些可以用来输出连接和目录以及信息,主要是用于添加自己的一些css和js文件,以及用于显示一些系统信息。
默认导航菜单 |
---|
<?php wp_nav_menu(); ?> |
指定的导航菜单 |
<?php wp_nav_menu( array(‘menu’ => ‘Project Nav’ )); ?> |
基于分类的导航 |
<ul id=”menu”> |
<li <?php if(is_home()) { ?> class=”current-cat” <?php } ?>> |
<a href=”<?php bloginfo(‘home’); ?>”>Home</a></li> |
<?php wp_list_categories(‘title_li=&orderby=id’);?> |
</ul> |
基于页面的导航 |
<ul id=”menu”> |
<li <?php if(is_home()) { ?> class=”current-page-item” <?php } ?>> |
<a href=”<?php bloginfo(‘home’); ?>”>Home</a></li> |
<?php wp_list_pages(‘sort_column=menu_order&depth=1&title_li=’);?> |
</ul> |
<?php the_content(); ?> | 文章内容 |
<?php if(have_posts()): ?> | 检查是否有文章 |
<?php while(have_posts()): the_post(); ?> | 显示文章 |
<?php endwhile; ?> | 结束循环 |
<?php endif; ?> | 结束判断 |
<?php get_header(); ?> | 头部模板内容 |
<?php get_sidebar(); ?> | 侧边栏模板内容 |
<?php get_footer(); ?> | 底部模板内容 |
<?php the_time(‘m-d-y’); ?> | 显示时间,格式为:’08-18-07′ |
<?php comments_popup_link(); ?> | 显示到文章留言的链接 |
<?php the_title(); ?> | 文章标题 |
<?php the_permalink(); ?> | 文章链接 |
<?php the_category(); ?> | 文章分类 |
<?php the_author(); ?> | 文章作者 |
<?php the_ID(); ?> | 文章 ID |
<?php edit_post_link(); ?> | 文章编辑链接 |
<?php wp_list_bookmarks(); ?> | 友情链接列表 |
<?php comments_template(); ?> | 留言模板内容 |
<?php wp_list_pages(); ?> | 所有页面列表 |
<?php wp_list_categories(); ?> | 所有分类列表 |
<?php next_post_link(‘%link’); ?> | 下一篇文章链接 |
<?php previous_post_list(‘%link’); ?> | 上一篇文章链接 |
<?php get_calendar(); ?> | 显示文章日历 |
<?php wp_get_archives(); ?> | 存档链接列表 |
<?php posts_nav_link(); ?> | 上一篇和下一篇文章链接 |
<?php rewind_posts(); ?> | 重回开头开始第二个循环 |
上面这些是显示文章的一些信息,主要用于文章界面,可以显示一些文章的信息。
其他函数
/%postname%/ | 自定义固定链接 |
<?php include(TEMPLATEPATH . ‘/x’); ?> | 从模板文件夹加载文件 |
<?php the_search_query(); ?> | 搜索表单返回的值 |
<?php _e(‘Message’); ?> | 返回翻译之后的文本 |
<?php wp_register(); ?> | 注册链接 |
<?php wp_loginout(); ?> | 登录/登出链接 |
<!–nextpage–> | 将文章那个内容分页 |
<!–more–> | 截断文章内容,并创建到全文的链接 |
<?php wp_meta(); ?> | 管理元链接 |
<?php timer_start(); ?> | 开始计时 (header.php) |
<?php timer_stop(1); ?> | 停止计时 (footer.php) |
<?php echo get_num_queries(); ?> |
显示生成当前页面所需的查询数 |
- <?php _e(’Message’); ?> : 输出相应信息
- <?php wp_register(); ?> : 显示注册链接
- <?php wp_loginout(); ?> : 显示登录/注销链接
- <!–next page–> : 将当前内容分页
- <!–more–> : 将当前内容截断,以不在主页/目录页显示全部内容
- <?php timer_stop(1); ?> : 网页加载时间(秒)
- <?php echo get_num_queries(); ?> : 网页加载查询量
页面判断函数
函 数 名 称 | 用 法 | 说 明 |
is_home() | <?php if(is_home())?> true 为首页,false 为第二页 | 判断是否为第一页 |
is_paged() | <?php if(is_paged())?> | 当页面为第二页时,?paged=2 |
is_single() | <?php if(is_single())?> <?php if(is_single(2))?>文章 id <?php if(is_single(‘标题’))?>文章标题 |
是否为文章单一页面,如要针对特定文章时,可在()中加入文章的 ID 参数,或标题文字 |
is_page() | <?php if(is_page())?> <?php if(is_page(2))?>分页 id <?php if(is_page(‘标题’))?>分页标题 |
是否为分页,与单一页面用法相同,在()中可再针对个別的分页 ID 与标题作判断 |
is_category() | <?php if(is_category())?> <?php if(is_category(2))?>分类 id <?php if(is_category(‘标题’))?>分类标题 <?php if(is_category(array(6,7)))?>分类 id 为 6、7 <?php if(is_category(array(6,7,’minwt’)))?>分类 id 为 6、7 或 minwt |
是否为分类,()中可输入分类 ID 与名称,再个別作判断 |
is_archive() | <?php if(is_archive())?> | 是否为存档页面 |
is_search() | <?php if(is_search())?> | 是否为搜索面 |
is_404 | <?php if(is_404())?> | 是否为找不到画面 404 |
is_tag() | <?php if(is_tag())?> | 是否为标签页面 |
is_date() | <?php if(is_date())?> | 是否为日期存档页面 |
is_year() | <?php if(is_year())?> | 是否为年份存档页面 |
is_month() | <?php if(is_month())?> | 是否为月份存档页面 |
is_day() | <?php if(is_day())?> | 是否为天存档页面 |
这里就可以通过判断相应的页面而显示相应的内容。
下面就介绍一些使用的函数
显示文章字数
主要原理就是通过新建一个自己的函数,然后在文章界面里面调用它就行了
//字数统计
function count_words ($text) {
global $post;
if ( '' == $text ) {
$text = $post->post_content;
if (mb_strlen($output, 'UTF-8') < mb_strlen($text, 'UTF-8')) $output .= '本文共有' . mb_strlen(preg_replace('/s/','',html_entity_decode(strip_tags($post->post_content))),'UTF-8') . '个字';
return $output;
}
//调用方式
<?php echo count_words($text);?>
显示文章最后修改时间
这个就只需要在文章界面加入下面的PHP代码即可。
<?php if ((get_the_modified_time('Y')*365+get_the_modified_time('z')) > (get_the_time('Y')*365+get_the_time('z'))) : ?>最后修改于:
<?php the_modified_time('Y-m-j h:s l'); ?>
<?php else : ?>文章发布于:
<?php echo the_time('Y-m-j h:s l'); ?>
<?php endif; ?>
2019/6/9 :首页过滤指定分类目录文章
我们只需要在function.php函数文件里面添加下面这个函数就行了,只需要加上这个,其他的不用管:
//首页过滤指定分类目录文章
function excludeCat($query) {
if ( $query->is_home ) { //首页过滤指定分类,你可以指定其他页面
$query->set('cat', '-3',,'-5','-23'); //过滤分类ID为 3,5,23的分类文章
}
return $query;
}
add_filter('pre_get_posts', 'excludeCat');
?>
2019/7/16:没有注册者随机显示头像
这个也是同样需要自己在function.php中添加一个函数就可以了
在当前主题目录中新建一个名称为avatar的文件夹,里面放10张名称连续的jpg图片,比如1.jpg、2.jpg、3.jpg.........,和一张用于管理员的图片,名称为admin.jpg。
add_filter( 'get_avatar' , 'local_random_avatar' , 1 , 5 );
function local_random_avatar( $avatar, $id_or_email, $size, $default, $alt) {
if ( ! empty( $id_or_email->user_id ) ) {
$avatar = ''.get_template_directory_uri().'/avatar/admin.jpg';
}else{
$random = mt_rand(1, 10);
$avatar = ''.get_template_directory_uri().'/avatar/'. $random .'.jpg';
}
$avatar = "";
return $avatar;
}