wordpress添加description及keywords

今天继续介绍一些简单的博客SEO的设置,为wordpress添加description以及keywords。一般来说,有插件可以实现这个功能,比较有名的就是all in one seo。但是懒人还是想用代码自动插入description以及keywords
[blink]更多文章参考:
WordPress 添加面包屑导航
[/blink]

wordpress添加descriptionkeywords代码

将以下代码插入到合适位置,如header.php中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if (is_single()){
    if ($post->post_excerpt) {
        $description     = $post->post_excerpt;
    } else {
        $description = substr(strip_tags($post->post_content),0,220);
    }    $keywords = "";       
    $tags = wp_get_post_tags($post->ID);
    foreach ($tags as $tag ) {
        $keywords = $keywords . $tag->name . ", ";
    }
?>
<meta name="keywords" content="<?php echo $keywords ?>" />
<meta name="description" content="<?php echo $description ?>" />
<?php
}
else
{
 ?>
<meta name="description" content="<?php //自定义description?>" />
<meta name="keywords" content="<?php //自定义keywords?>" />
<?php
}
 ?>

大概解释下,就是如果在内容页,那么自动截取前220个字作为description,tag作为keywords。否则将显示自定义的description及keywords。

小结

国外好多主题其实都不加description以及keywords的,但是加上肯定是更好的。

发表在 WordPress教程 | 标签为 | wordpress添加description及keywords已关闭评论

WordPress获取文章作者信息函数get_the_author_meta()

还是继续介绍我在开发主题中用到的一些比较实用的函数,这次是获取文章作者信息函数get_the_author_meta(),下面给出该函数的一些具体介绍。

用法

1
<?php get_the_author_meta( $field,  $author_id);?>

参数说明:
$field(字符串) 将要显示的用户信息的字段名称(这些在数据库中都可以找到)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
user_login(用户登录名)
user_pass(用户登录密码)
user_nicename(用户昵称)
user_email(用户邮箱地址)
user_url(用户网站地址)
user_registered(用户注册时间)
user_status(用户状态)
display_name(作者显示的名称)
nickname(作者昵称)
first_name(作者名字)
last_name(作者姓氏)
description(作者描述)
user_level(用户等级)
user_firstname(用户名字)
user_lastname(用户姓氏)
user_description(用户描述)

$author_id 用户ID值

使用说明

如果该函数在文章主循环(Loop)中,则不必指定作者的ID值,标签所显示的就是当前文章作者的内容。如果在主循环(Loop)外,则需要指定用户ID值。

实例

在主循环外获取当前文章作者

1
2
3
4
global $post;
$author_id=$post->post_author;
//获取用户昵称
$nickname = get_the_author_meta( 'nickname',  $author_id);
发表在 WordPress教程 | 标签为 | WordPress获取文章作者信息函数get_the_author_meta()已关闭评论

使用Pushbullet推送WordPress评论

一般wordpress评论通知都是通过邮件通知的,但是没有实时推送的效果。以前有个飞信接口,但是太抠门了,没有提供官方的接口,个人做的接口总会过段时间失效。今天在网上看到网友利用Pushbullet推送Wordpress评论至手机上,很有意思。

Pushbullet介绍

官方页面:https://www.pushbullet.com

Pushbullet (子弹推送) 是一个强大免费的跨平台消息推送工具 (服务),目前支持 Android、iOS、Windows、Mac 等系统。它最大特色是能支持消息双向甚至是多向推送!你可以在不同设备间来回互相推送文字、图片、网址、地址、短信、电话号码、待办事项列表等,在转换设备使用时特别方便!在同类软件中表现出色,绝对是工作、生活上都能提高效率的利器……

Pushbullet 使用谷歌帐号进行登录,如果你已经有帐号则不需再注册了。

实现推送需要在手机上安装客户端,安卓及ios客户端均可在市场下载到,这里就不提供链接了。

使用Pushbullet推送wordpress评论

1、借助zapier

zapier号称商务版的IFTTT,它让非懂技术用户也能毫不费力地在原本不相关的API之间建立关联。
地址:Zapier 。
这方法虽然简单,但是有1-15分钟的延迟,而且还要提供Zapier WordPress帐号和密码。

2、使用插件。

Pushbullent有自己的Wordpress插件,但是功能比较多,不喜欢折腾的同学可以使用这种方法。
插件地址:https://wordpress.org/plugins/pushbullet-notification/

3、wordpress代码实现

首先获取Apikey及设备ID

登陆后,点击 这里 找到你的Apikey

在首页选中推送设备,可以再地址栏看到设备id

pushbullet

在functions.php添加如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//pushbullet推送评论
function pushbullet($title,$body)
{
    $apikey='你的apikey';
    $device_iden='你的设备id';
    $req_args = array(
       'headers' => array(
            'Authorization' => 'Basic ' . base64_encode( $apikey.':')
            ),
       'timeout' => 50,
       'sslverify' =>FALSE,
       'method' => 'post',
       'body'=>array(
                    'type' => 'note',
                    'device_iden'=>$device_iden, 
                    'title' => $title,
                    'body'=>$body)
    );
    $response = wp_remote_post( 'https://api.pushbullet.com/api/pushes', $req_args );
}
function tennfy_push($comment_ID)
{
    $comment = get_comment($comment_ID);
    if (empty($comment))
        {
            return;
        }
    if ($comment->comment_approved != 'spam')
    {
        $post = get_post($comment->comment_post_ID);
        if ($comment->user_id == $post->post_author)
        {
            return;
        }
        if ('pingback' == $comment->comment_type || 'trackback' == $comment->comment_type)
        {
            return;
        }
        $title = $comment->comment_author . " 评论了 《" . get_the_title($comment->comment_post_ID) . "》";
        $body = "文章:《" . get_the_title($comment->comment_post_ID) . "》\n评论: " . trim($comment->comment_content) . "\n链接: " . get_permalink($comment->comment_post_ID) . '#comment-' . $comment_ID;
        pushbullet($title,$body);
    }
}
add_action('comment_post', 'tennfy_push', 10, 2);

总结

pushbullet提供了api可供我们把玩,手机上安装客户端之后,可以实现推送微博,评论等等功能。

参考文章:巧用Pushbullent推送Wordpress评论

发表在 WordPress教程 | 标签为 | 使用Pushbullet推送WordPress评论已关闭评论

WordPress自定义字段的介绍和使用说明

WordPress 自定义字段是对 WordPress Posts 表的一种补充和扩展,一般来讲 WordPress 提供了博客日志的作者,分类,标签,时间等,然后你可以根据你的需要自定义出一系列的其他信息。所有的这些字段和值,都保存在数据库的 wp_post_meta 这个数据表里。

wordpress自定义字段的使用

1、启用wordpress自定义字段功能

进入文章编辑页面,点击右上角“显示选项”: 勾选“自定义栏目”: 现在我们就已经开启wordpress的自定义字段功能了,

zdyzd1

2、wordpress自定义字段功能的使用

在文章编辑器的下方会出现自定义栏目区域,选择输入新栏目,然后输入值就可以添加自定义字段了。

zdyzd2

WordPress 自定义字段工作机制

WordPress 自定义字段通常有两个的变量:键 ( key ) 和值 ( value )。比如你想显示你写日志当时的心情,你可以把键叫做 “mood”(心情),显然在这里值就是 “高兴” 或者 “愤怒”。

当我们为某篇日志或者页面创建一个自定义字段的时候,我们所写的信息将会存储到该日志或者页面中。换句话说,我们所创建的自定义字段的的数据是属于当前的日志或者页面,所以我们能够显示当前日志或者页面相关的自定义字段信息。

wordpress自定义字段的调用

有两种方法调用wordpress自定义字段

1、使用 the_meta() 函数调用

使用the_meta() 这个模版函数会自动输出一个无序的列表,如下所示:

  • Key1: Value of “Key1″
  • Key2: Value of “Key2″
  • Key3: Value of “Key3″

2、使用get_post_meta()调用

et_post_meta()函数能够能按照自己的需求列出自定义字段。如通过使用

1
get_post_meta($post->ID, “Key2″, $single = true);

可以返回自定义字段 “Key2″ 的值,也可以输出它:

1
echo get_post_meta($post->ID, “Key2″, $single = true);

3、wordpress自定义字段的调用示例

假如你想用一张表情图片显示写日志时候的心情,首先制作这些表情图片,并把它们命名为 Sad.gif,Mad.gif 和 Happy.gif,然后在撰写日志的时候,在自定义字段那里名称输入 mood,值输入 Sad,Mad,Happy 中的一个,上面最后代码如下:

1
<img src="/smilies/<?php echo get_post_meta($post->ID, "mood", $single = true); ?>.gif" alt="mood" />

参考文章:WordPress 自定义字段(Custom Fields)详细介绍和使用

发表在 WordPress教程 | 标签为 | WordPress自定义字段的介绍和使用说明已关闭评论

WordPress add_meta_box()函数

说明

用来给插件开发者添加 Meta模块 到管理界面。
定义在: wp-admin/includes/template.php

用法

1
add_meta_box( $id, $title, $callback, $post_type, $context,$priority, $callback_args );

参数

$id(字符串)(必需)Meta模块的 HTML“ID”属性

$title(字符串)(必需)Meta模块的标题,对用户可见

$callback(回调)(必需)为Meta模块输出 HTML代码的函数

$post_type(字符串)(必需)显示Meta模块的文章类型,可以是文章(post)、页面(page)、链接(link)、附件(attachment) 或 自定义文章类型(自定义文章类型的别名)

$context(字符串)(可选)Meta模块的显示位置(’normal’,’advanced’, 或 ‘side’)默认值:’advanced’

$priority(字符串)(可选)Meta模块显示的优先级别(’high’, ‘core’, ‘default’or ‘low’)默认值: ‘default’

$callback_args(数组)(可选)传递到 callback 函数的参数。callback 函数将接收 $post 对象和其他由这个变量传递的任何参数。

示例

在文章编辑界面移除自定义字段模块:

1
2
3
4
5
6
7
8
9
10
function create_meta_box(){//添加设置区域的函数
add_meta_box('tennfy_box', 'add_meta_box 测试', 'tennfy_box','post','side','high',array('str1','str2'));
};
//在'add_meta_boxes'挂载 create_meta_box函数
add_action('add_meta_boxes','create_meta_box');
 
 
function tennfy_box($post,$boxargs){//显示设置区域的回调函数
	echo"add_meta_box 测试";
};
发表在 WordPress教程 | 标签为 | WordPress add_meta_box()函数已关闭评论

WordPress 添加面包屑导航

今天花了半天的时间对主题进行了修改,主要还是模仿了别人的页面顶部,logo单纯的用文字凑合了,如果有会设计logo的朋友帮忙美化下TENNFY WU这几个字吧。闲话不多说了,今天介绍下如何在wordpress中添加面包屑导航。事实上几乎每个主题都有面包屑导航,应该说它既有助于SEO也有助于读者返回上一级页面。但是我的没有。。。。

面包屑导航

面包屑导航具有如下几个作用:
1、让用户了解目前所处位置,以及当前页面在整个网站中的位置。给用户一个清晰的了解,不至于在网站中茫然。

2、体现了网站的架构层级,能够帮助用户快速学习和了解网站内容和组织方式,从而形成很好的位置感。这个也是提高用户体验的,谁也不想在一个不知位置的网络中访问,没有安全感。

3、提供返回各个层级的快速入口,方便用户操作。当用户想了解这个栏目下面更多先关文章的话,可以点击找到。比如本博客在“wordpress”栏目下,可能很多朋友想了解更多wordpress基础知识,这个时候就可以通过点击面包屑导航的wordpress基础进入了解其他wordpress基础知识。

4、Google已经将面包屑导航整合到搜索结果里面,因此优化面包屑导航每个层级的名称,多使用关键字,都可以实现SEO优化。谷歌导航中含有这个,极大的增加网站显示面,提高用户点击。

在wordpress中添加面包屑导航

在你想要插入面包屑导航的位置,插入一下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php if( is_home() ){?>
 //一般这里放首页的公告栏
 <?php }else { ?>
 当前位置:<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.' 的搜索结果';
}
}
?>

小结

本文参考了http://wange.im/breadcrumb-in-wordpress.html这篇文章,欢迎大家多对我的博客主题提意见。

发表在 WordPress教程 | 标签为 | WordPress 添加面包屑导航已关闭评论

wordpress后台首页增加/移除模块的方法

在wordpress的后台首页中有许多没用的模块,如插件、博客消息、评论、订阅等信息模块,多数情况下我们并不需要看到这些信息,而且在读取这些信息时会减慢后台的运行速度。因此我们可以通过自定义后台挂件删除一些不需要的模块,添加一些自定义内容的属性到后台首页中来。

移除后台首页模块

在主题的functions.php中添加以下代码,有详细注释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function example_remove_dashboard_widgets() {
    // Globalize the metaboxes array, this holds all the widgets for wp-admin
    global $wp_meta_boxes;
 
    // 以下这一行代码将删除 "快速发布" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
 
    // 以下这一行代码将删除 "引入链接" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
 
    // 以下这一行代码将删除 "插件" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
 
    // 以下这一行代码将删除 "近期评论" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
 
    // 以下这一行代码将删除 "近期草稿" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
 
    // 以下这一行代码将删除 "WordPress 开发日志" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
 
    // 以下这一行代码将删除 "其它 WordPress 新闻" 模块
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
 
    // 以下这一行代码将删除 "概况" 模块
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
}
add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );

如果需要移除其他模块,可以使用unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘需要移除的模块id’]);

使用add_action(‘wp_dashboard_setup’, ‘remove_dashboard_widgets’);执行挂载动作,将通过调用回调函数remove_dashboard_widgets移除不必要的模块

增加后台首页模块

增加后台首页模块主要使用wp_add_dashboard_widget函数。该函数的使用方法为:

1
2
3
4
5
6
wp_add_dashboard_widget(
$widget_id,//模块的ID
$widget_name, //显示名称
$callback, //内容回调函数
$control_callback//控制函数回调
)

通过函数的说明,应该可以很清楚的了解这个函数的具体使用方法了,下面给出一个完整的实例演示代码,该示例可以实现后台简单的文本输出模块。代码如下:

1
2
3
4
5
6
7
8
9
10
// 设置模块的输出内容
function example_dashboard_widget_function() {
    // Display whatever it is you want to show
    echo "演示的内容";
} 
// 增加模块
function example_add_dashboard_widgets() {
    wp_add_dashboard_widget('example_dashboard_widget', '示例模块', 'example_dashboard_widget_function');    
} 
add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' ); // 挂载example_dashboard_widget
发表在 WordPress教程 | 标签为 | wordpress后台首页增加/移除模块的方法已关闭评论

WordPress自定义上传路径及生成文件的URL地址

WordPress 3.5以上的版本,隐藏了后台的媒体(Media)设置页面 上传路径(upload_path)和文件 URL 地址(upload_url_path)的设定,如下图所示。有些朋友却需要这个功能,那怎么办呢,这里给大家介绍两个办法来找回这个功能。

uploaddir

代码找回

将以下代码加入到functions.php中即可恢复该功能:

1
2
3
4
//找回上传设置
if(get_option('upload_path')=='wp-content/uploads' || get_option('upload_path')==null) {
	update_option('upload_path',WP_CONTENT_DIR.'/uploads');
}

options.php 中设置

直接访问:http://site_url/wp-admin/options.php,然后找到下面选项,将其设置为你所需的参数。

uploads_options

发表在 WordPress教程 | 标签为 | WordPress自定义上传路径及生成文件的URL地址已关闭评论

wordpress文章编辑页增加/隐藏及移除模块的方法

在上篇文章中介绍了wordpress后台首页增加/移除模块的方法,今天来继续介绍下wordpress文章编辑页增加/移除模块的方法。

在WordPress后台的文章编辑页,有很多的模块,如”摘要”、”发送Trackbacks”、”分类”、”标签”、”自定义域”、”讨论”,”作者”等。如下图就是侧边栏的”发布”和”标签”模块。

wzbjy1

隐藏文章编辑页模块

其实WordPress提供这么多的面板,有很多我们是用不着的,如”发送 Trackbacks”,”评论”等,不同用户还有不同的喜好。这时候我们可以将不需要的面板删除,方法很简单,在文章编辑页面右上角有个 “显示选项” 按钮,点击可以弹出如下图所示的选项,你可以根据需要去除不需要的模块。

wzbjy2

移除文章编辑页模块

对于WordPress多用户站点,我们有时会需要使用代码删除不必要的模块,可以采用remove_meta_box()来实现该功能:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 移除文章编辑界面默认的Meta模块
function remove_my_post_metaboxes() {
remove_meta_box( 'authordiv','post','normal' ); // 作者模块
remove_meta_box( 'commentstatusdiv','post','normal' ); // 评论状态模块
remove_meta_box( 'commentsdiv','post','normal' ); // 评论模块
remove_meta_box( 'postcustom','post','normal' ); // 自定义字段模块
remove_meta_box( 'postexcerpt','post','normal' ); // 摘要模块
remove_meta_box( 'revisionsdiv','post','normal' ); // 修订版本模块
remove_meta_box( 'slugdiv','post','normal' ); // 别名模块
remove_meta_box( 'trackbacksdiv','post','normal' ); // 引用模块
 
remove_meta_box( 'categorydiv','post','normal' ); // 分类模块
remove_meta_box( 'formatdiv','post','normal' ); // 文章格式模块
remove_meta_box( 'submitdiv','post','normal' ); // 发布模块
remove_meta_box( 'tagsdiv-post_tag','post','normal' ); // 标签模块
}
add_action('admin_menu','remove_my_post_metaboxes');
 
//移除特色图像模块
add_action('do_meta_boxes', 'remove_thumbnail_box');
function remove_thumbnail_box() {
    remove_meta_box( 'postimagediv','post','side' );
}

增加文章编辑页模块

增加文章编辑页模块可以使用add_meta_box() 函数,给个简单的例子:

1
2
3
4
5
6
7
8
9
10
function create_meta_box(){//添加设置区域的函数
add_meta_box('tennfy_box', 'add_meta_box 测试', 'tennfy_box','post','side','high',array('str1','str2'));
};
//在'add_meta_boxes'挂载 create_meta_box函数
add_action('add_meta_boxes','create_meta_box');
 
 
function tennfy_box($post,$boxargs){//显示设置区域的回调函数
	echo"add_meta_box 测试";
};
发表在 WordPress教程 | 标签为 | wordpress文章编辑页增加/隐藏及移除模块的方法已关闭评论

WordPress集成短代码至后台面板

前面也介绍了一些关于短代码的内容,但是短代码毕竟是代码,自己敲上去还是觉得有些麻烦,要是集成在后台面板里然后点一下就好了,今天就介绍下如何将短代码集成到后台面板。这里的面板是html编辑器的面板,而不是可视化编辑器的面板。
更多文章参考:
wordpress短代码(Shortcode)的使用

方法介绍

事实上只要在functions.php中加入以下代码就可以了:

1
2
3
4
5
6
7
8
9
10
11
12
///////////面板插入代码///////////
<?php
add_action( 'admin_print_footer_scripts', 'shortcode_buttons', 100 );
function shortcode_buttons() {
?>
	<script type="text/javascript">
		QTags.addButton( 'm', 'MP3Player', '[mp3]MP3Player代码[/mp3]');
                QTags.addButton( 'm0', '下载面板', '[down]这里输入内容[/down]');  
	</script>
	<?php }
function add_editor_buttons($buttons) { $buttons[] = 'fontselect'; $buttons[] = 'fontsizeselect'; $buttons[] = 'cleanup'; $buttons[] = 'styleselect'; $buttons[] = 'hr'; $buttons[] = 'del'; $buttons[] = 'sub'; $buttons[] = 'sup'; $buttons[] = 'copy'; $buttons[] = 'paste'; $buttons[] = 'cut'; $buttons[] = 'undo'; $buttons[] = 'image'; $buttons[] = 'anchor'; $buttons[] = 'backcolor'; $buttons[] = 'wp_page'; $buttons[] = 'charmap'; return $buttons; } add_filter("mce_buttons_3", "add_editor_buttons");
?>

插入代码的地方就是:

1
2
QTags.addButton( 'm', 'MP3Player', '[mp3]MP3Player代码[/mp3]');
QTags.addButton( 'm0', '下载面板', '[down]这里输入内容[/down]');

其中第一个参数可以写成m,m0,m1,m2等等,第二个参数是显示在面板中的名称,第三个参数是会自动插入到编辑器中的代码。

小结

下图就是短代码集成在后台面板的效果:
duandaimamianban

发表在 WordPress教程 | 标签为 | WordPress集成短代码至后台面板已关闭评论