get_the_category() 函数是用来获取当前文档所属分类属性的函数,这里是当前分类,wordpress 后台分类都有自己的别名,描述之类的,而我们要获取的就是这些信息,当然这些信息不是单独来获取的,而是在当前文档中进行获取的,比如一篇日志,这篇日志是属性哪个分类的,而这个分类的属性又是什么,大概就是这样的吧。
get_the_category() 函数用来返回的值是一个数组形式的对象,返回的内容是文章下分类信息,可以在文章主循环外使用(Loop)
语法结构
<?php $category = get_the_category($id); ?>
参数
$id(可选)文章的ID编号,默认值为$post->ID (当前文章的ID编号)。
返回值
cat_ID
分类ID编号 (也可以保存为 ‘term_id’)
cat_name
类别名称 (也可以保存为 ‘name’)
category_nicename
类分类名称产生的一个slug (也可以保存为’slug’)
category_描述
分类描述 (也保存为’description’)
category_parent
当前分类的父类别的ID编号。’0′ 表示没有父类别。(同样也可以保存为 ‘parent’)
category_count
该分类有多少文章 (也可以保存为 ‘count’)
实例
显示第一个分类名称
<?php
$category = get_the_category();
echo $category[0]->cat_name;
?>
显示多个分类名称(当一个篇文章有多个分类的时候)
<?php
$cat = get_the_category();
foreach($cat as $key=>$category){
echo $category->cat_name.'<br/>’;
}
?>
显示分类的所有内容
<?php
$categories = get_the_category();
var_dump($categories);
?>//显示的内容就是上面提到的返回值
通过上面的方法我们就可以在文章的循环外获取分类的内容,这样我们就可以用在很多的功能中,比如可以在每篇文章下面添加一个相关文章列表
wordpress内置函数 the_excerpt() 是个使用频率较高的函数,它是用来获取当前文章摘要的,以[…]结尾,如果在文章中没有编辑内容摘要字段,则默认截取文章的前55个字的内容,默认截取的字段去掉HTML标签和图形,并且一定要在循环内使用。
the_excerpt() 函数使用的方法也非常简单,用法如下:
这个标签没有任何的参数,直接使用即可,但函数默认的设置有时候并不能满足用户的需要,比如国内用户以[…]结尾就很不习惯,另外截取前 55 个字符有时候会太少了,还有文章摘要的结尾是不是我们可以自定义加个更多的链接呢,这些自定义只需要在主题 functions.php 文件中加入相应的代码就可以了。

functions.php中的代码
//设定摘要的长度
function new_excerpt_length($length) {
return 150;
}
add_filter('excerpt_length', 'new_excerpt_length');
//把摘要默认的结尾[...]换成...
function new_excerpt_more(){
global $post;
return " <a href="". get_permalink($post->ID) . "">阅读更多</a>";
}
add_filter('excerpt_more', 'new_excerpt_more');
//在页面中直接调用摘要
<?php the_excerpt();?>
//也可以采用这种方法,但是测试的结果却是摘要字符无法截断,如果能截断这个是比较完美的一个方法
<?php if(has_excerpt()){
the_excerpt();
} else{
echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 75, "…");
}?>
get_the_excerpt() 返回文章摘要赋值给变量
bloginfo() 直接在浏览器中输出内容,我们创建一个wordpress博客的时候,我们需要填写博客的相关信息,包括博客名称,博客描述,博客地址等等。当我们需要使用这些信息的时候,就可以使用bloginfo()函数来获取wordpress博客的相关信息。
语法结构
<?php bloginfo( $show ); ?>
参数:
$show (字符串string) (可选)你需要输出的信息的关键词。 默认值: name
‘name’:显示在 设置 -> 常规 中设置的“站点标题”。该数据是从 wp_options 这个数据表中检索到的 “blogname”记录。
‘description’:显示在 设置 -> 常规 中设置的“副标题”。该数据是从 wp_options 这个数据表中检索到的 “blogdescription” 记录。
‘admin_email’:显示在 设置 > 常规 中设置的 “电子邮件地址”。该数据是从 wp_options 这个数据表中检索到的 “admin_email”记录。
‘charset’:显示在 设置 > 常规 中设置的“页面和feed的编码”。该数据是从 wp_options 这个数据表中检索到的”blog_charset” 记录。(注:3.5.1+好像已经没有这个选项了)
‘html_type’:显示WordPress HTML 页面中的内容类型(默认: “text/html”)。该数据可以从 wp_options 这个数据表中检索到的 “html_type” 记录。主题和插件可以通过使用 pre_option_html_type 过滤器覆盖默认值。
‘language’:显示WordPress的语言。
‘wpurl’:显示在 设置 > 常规 中设置的 “WordPress 地址 (URL)”。该数据是从 wp_options 这个数据表中检索到的 “siteurl” 记录。 可以考虑使用 site_url() 来代替,尤其是在使用 子目录路径方式,而不是使用 子域名 来配置多站点时(bloginfo将返回根网站的URL,而不是子站点的URL)。
‘url’:显示在 设置 > 常规 中设置的 “站点地址(URL)”。该数据是从 wp_options 这个数据表中检索到的 “home”记录。 可以考虑使用 home_url() 代替。
‘stylesheet_url’:显示当前使用的主题的 CSS文件(通常为 style.css)路径。可以考虑使用 get_stylesheet_uri() 代替。
‘template_url’/’template_directory’:当前主题的 URL 路径 。在子主题中, get_bloginfo(‘template_url’) 和 get_template() 都将返回父主题的目录。可以考虑使用 get_template_directory_uri() (用于父主题目录)或get_stylesheet_directory_uri() (用于子主题目录)代替。
‘stylesheet_directory’:显示当前使用的主题的样式表路径。可以考虑使用 get_stylesheet_directory_uri() 代替。
示例输出
name = 获得更好的笔记查询体验
description = 又一个WordPress站点
admin_email = admin@example.com
charset = UTF-8
html_type = text/html
language = en-US
wpurl = http://coding.xuxiaoke.com/(获得安装路径)
url = http://coding.xuxiaoke.com/(获得首页地址)
stylesheet_url = http://www.example.com/home/wp/wp-content/themes/bluesky/style.css
stylesheet_directory = http://www.example.com/home/wp/wp-content/themes/bluesky
template_directory = http://www.example.com/home/wp/wp-content/themes/bluesky
template_url = http://www.example.com/home/wp/wp-content/themes/bluesky
text_direction = ltr
version = 3.5
home = http://www.example.com/home (已弃用!使用 url 替代)
siteurl = http://www.example.com/home (已弃用!使用 url 替代)
1 第一步、小工具注册
自定义菜单功能和侧边栏小工具,是WordPress主题中比较有特色的功能.
我们在之前的建站教程里,分享了如何给WordPress主题添加自定义菜单。
本文介绍一下制作主题的时候,如何添加自定义小工具功能。
和给主题一样添加自定义菜单一样,自定义添加小工具Widgets只需3个步骤。
要使用小工具,先要进行注册,打开WordPress主题下面的 functions.php 文件,
在functions.php文件里面,添加如下代码:
<?php
//侧边栏小工具
if ( function_exists('register_sidebar') ) {
register_sidebar( array(
'name' => __( 'Top Sidebar' ),
'id' => 'top-sidebar',
'description' => __( 'The top sidebar' ),
'before_widget' => '<li>',
'after_widget' => '</li>',
'before_title' => '<h2>',
'after_title' => '</h2>',
) );
}
?>
修改functions.php里的li、h2标签,使之对应sidebar.php里的标签:
‘before_widget’ 和 ‘after_widget’ 的li和模块h2标题,按实际情况修改代码。
(也可能不用修改)
'before_widget' => '<li>', 'after_widget' => '</li>', 'before_title' => '<h2>', 'after_title' => '</h2>',
以上代码注册了一个名为“top-sidebar”的小工具区域:
登录WordPress后台仪表盘,依次进入 外观 → 小工具。
如果能看到下图中右边的Top Sidebar 小工具区域,说明注册成功了 ▼

小工具注册之后就可以在主题模板文件中调用了,把下面的代码放到sidebar.php文件中就可以调用了。
1)在sidebar.php文件中,最大的li或div标签下方,插入 ▼
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(top-sidebar) ) : ?>
2)在sidebar.php文件中,最大的</li>或</div>上方,添加 ▼
<?php endif; ?>
1)小工具注册好了,显示位置也在主题文件中定义好了。

2)保存之后,刷新前台页面。

能看到上图,说明我们的小工具已经制作完成,并如常运行了。
重复第一步和第二步,就能让你的WordPress主题,支持不同位置中的widget小工具了。
假设你需要将一个小工具添加到主题的头部、侧边栏、和底部。
1)首先,你需要将以下代码复制到functions.php文件中 ▼
if (function_exists('register_sidebar')) {
register_sidebar(array(
'name' => 'Header',
'id' => 'header',
'description' => 'This is the widgetized header.',
'before_widget' => '<div id="%1$s">',
'after_widget' => '</div>',
'before_title' => '<h4>',
'after_title' => '</h4>'
));
register_sidebar(array(
'name' => 'Sidebar',
'id' => 'sidebar',
'description' => 'This is the widgetized sidebar.',
'before_widget' => '<div id="%1$s">',
'after_widget' => '</div>',
'before_title' => '<h4>',
'after_title' => '</h4>'
));
register_sidebar(array(
'name' => 'Footer',
'id' => 'footer',
'description' => 'This is the widgetized footer.',
'before_widget' => '<div id="%1$s">',
'after_widget' => '</div>',
'before_title' => '<h4>',
'after_title' => '</h4>'
));
}
2)接下来,将以下代码分别添加到header.php、sidebar.php和footer.php文件中。
header.php ▼
<div id="widgetized-header">
<?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('header')) : else : ?>
<div>
<p><strong>Widgetized Header</strong></p>
<p>This panel is active and ready for you to add some widgets via the WP Admin</p>
</div>
<?php endif; ?>
</div>
sidebar.php ▼
<div id="widgetized-sidebar">
<?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('sidebar')) : else : ?>
<div>
<p><strong>Widgetized Sidebar</strong></p>
<p>This panel is active and ready for you to add some widgets via the WP Admin</p>
</div>
<?php endif; ?>
</div>
footer.php ▼
<div id="widgetized-footer">
<?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('footer')) : else : ?>
<div>
<p><strong>Widgetized Footer</strong></p>
<p>This panel is active and ready for you to add some widgets via the WP Admin</p>
</div>
<?php endif; ?>
</div>
到此成功!
接下来,继续分享WordPress使用小工具widget的技巧。
高效管理自定义widget小工具:
1)向主题添加widget小工具后,你可以创建一个单独的文件,并将其命名为widgets.php。
2)将代码添加到functions.php文件中:
if ($wp_version >= 2.8) require_once(TEMPLATEPATH.’/widgets.php’);
3)将所有在第1步添加的自定义widgets小工具代码,保存到widgets.php文件里。
此方法可确保所有widgets小工具顺畅加载,并在所有支持widgets小工具的WordPress版本上运行。
这样,你就可以更高效率地管理的WordPress主题文件。
希望我们网站( https://www.wordpressx.com/ ) 分享的《如何添加WordPress小工具?主题集成Widgets区域》,对您有帮助。
add_menu_page()函数是往后台添加顶级菜单,也就是和“外观”、“插件”等一样的顶级菜单。
语法结构
<?php
add_menu_page(
$page_title,
$menu_title,
$capability,
$menu_slug,
$function,
$icon_url,
$position );
?>
参数
page_title 页面title标签信息
$menu_title 菜单标题
capability 权限
menu_slug 别名自己命名
function 执行函数
icon_url 菜单图标url地址
position 此菜单项在菜单中的位置,警告:如果两个菜单项的位置属性相同,其中一个可能要被覆盖
对于function参数,这个参数一般是函数名,如果在类中,要调用类的方法,使用array(类名,函数名)这样的形式调用。如果这个参数为空的话,menu_slug参数可以是一个文件路径。
capability参数,默认的权限包括如下:
Subscriber 订阅者
Contributor 投稿者
Author 作者
Editor 编辑
Administrator 管理员
position参数,默认的菜单项位置属性如下:
2 Dashboard 仪表盘
5 Posts 文章
10 Media 媒体
15 Links 链接
20 Pages 页面
25 Comments 评论
60 Appearance 外观
65 Plugins 插件
70 Users 用户
75 Tools 工具
80 Settings 设置
栗子
function register_custom_menu_page(){
add_menu_page(
'菜单标题',
'菜单名称',
'administrator',
'custompage',
'custom_menu_page',
plugins_url('/images/icon.png'),
6
);
}
function custom_menu_page(){
echo "Admin Page Test";
}
add_action('admin_menu', 'register_custom_menu_page');