博客

WordPress 教程:Gravatar 头像被墙解决方案

Gravatar 头像服务就被彻底屏蔽了,国内没办法正常访问,就连之前使用的缓存头像到本地的方法,在国内主机中也失效了。本文收集了网上的几种解决方案,供参考。建议使用第一种方案。

 

调用ssl 头像链接

https还是没被墙的,而且速度还不错,直接调用这个最简单了。

如果你的网站启用了ssl 则不需要了,否则 functions.php 加入如下代码

function get_ssl_avatar($avatar) {
 $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
 return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

优点:简单稳定

缺点: 当头像特别大时速度可能略慢

阅读全文

标准
博客

WordPress 教程:非插件实现评论审核后通过邮件通知评论人

如果管理员在 WordPress 中设置了“评论者先前须有评论通过了审核”,第一次评论的访客就需要等待管理员的审核才会显示在网站上。有时管理员不能马上审核,访客无法一直等待,这时我们可以通过以下的功能实现评论审核后通过邮件通知评论人。

将下面的代码添加到当前主题的 functions.php 即可。

add_action('comment_unapproved_to_approved', 'wpdx_comment_approved');
function wpdx_comment_approved($comment){
 if (is_email($comment->comment_author_email)){
 $post_link = get_permalink($comment->comment_post_ID);
 $title = '您在【' . get_bloginfo('name') . '】的评论已通过审核';

 $body = '您在《<a href="' . $post_link . '" target="_blank" >' . get_the_title($comment->comment_post_ID) . '</a>》中发表的评论已通过审核!<br /><br />';
 $body .= '<strong>您的评论:</strong><br />';
 $body .= strip_tags($comment->comment_content) . '<br /><br />';
 $body .= '您可以:<a href="' . get_comment_link($comment->comment_ID) . '" target="_blank">查看您的评论</a> | <a href="' . $post_link . '#comments" target="_blank">查看其他评论</a> | <a href="' . $post_link . '" target="_blank">再次阅读文章</a><br /><br />';
 $body .= '欢迎再次光临【<a href="' . get_bloginfo('url') . '" target="_blank" title="' . get_bloginfo('description') . '">' . get_bloginfo('name') . '</a>】。';
 $body .= '<br /><br />注:此邮件为系统自动发送,请勿直接回复';

@wp_mail($comment->comment_author_email, $title, $body, "Content-Type: text/html; charset=UTF-8");
 }
}

你可以根据自己的需要修改上面的代码,来实现某些样式和内容。注意修改 functions.php 文件后,要保存为 UTF-8 格式,否则可能出现乱码问题。

阅读全文

标准
博客

如何禁止百度移动端自动转码

所谓百度转码,是把互联网上普通 WEB 网页资源转换为适合移动终端浏览的 WAP 网页。目的是好的,但并不是每个站点都需要,当你的站点已提供移动浏览页面,比如通过启用 WordPress 移动设备检测插件或者主题模板是响应式的设计,根本不需要百度帮忙将网页转换成千篇一律、毫无个性的 WAP 网页。

我们可以将下面的代码添加到网页代码中,即可告知搜索不劳烦转码。

<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />

注:WordPress 添加到主题 header.php 模板其它 meta 标签后面。

标准
博客

WordPress 教程:获取文章的评论人数

WordPress 自带函数可调用文章评论总数,某些特殊情况需要统计某文章实际评论的人数,非评论数,我们可以根据评论者的邮箱进行筛选统计。方法如下:

直接将下面的函数添加到当前主题的 functions.php 中。

function zfunc_comments_users($postid=0,$which=0) {
 $comments = get_comments('status=approve&type=comment&post_id='.$postid); //获取文章的所有评论
 if ($comments) {
 $i=0; $j=0; $commentusers=array();
 foreach ($comments as $comment) {
 ++$i;
 if ($i==1) { $commentusers[] = $comment->comment_author_email; ++$j; }
 if ( !in_array($comment->comment_author_email, $commentusers) ) {
 $commentusers[] = $comment->comment_author_email;
 ++$j;
 }
 }
 $output = array($j,$i);
 $which = ($which == 0) ? 0 : 1;
 return $output[$which]; //返回评论人数
 }
 return 0; //没有评论返回0
}

阅读全文

标准
博客

WordPress 教程:让作者在后台只看到自己的文章及评论

普通的作者,在 WordPress 后台不能看到太多的内容,我们可以让他们看到自己的文章,将下面的代码添加到主题根目录下的 functions.php 即可:

function imjeff_parse_query_useronly( $wp_query ) {
 if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) { if ( !current_user_can( 'add_user' ) ) { global $current_user; $wp_query->set( 'author', $current_user->id ); } } 
};
 add_filter('parse_query', 'imjeff_parse_query_useronly' );

在WordPress后台的评论列表是可以看到其他作者文章下的评论的,如果要限制用户只能看到自己文章下的评论,将下面的代码添加到主题根目录下的 functions.php 即可:

function wpdx_get_comment_list_by_user($clauses) {
 if (is_admin()) {
 global $user_ID, $wpdb;
 $clauses['join'] = ", wp_posts";
 $clauses['where'] .= " AND wp_posts.post_author = ".$user_ID." AND wp_comments.comment_post_ID = wp_posts.ID";
 };
 return $clauses;
};
if(!current_user_can('edit_others_posts')) {
 add_filter('comments_clauses', 'wpdx_get_comment_list_by_user');
}

注:你可能需要修改 第 8-9 行中的几个 wp_ 为你自己的数据库前缀。第 13 行添加了判断,只有“编辑”角色以下的用户才生效,也就是说,属于编辑和管理员这两个角色的用户是不限制的。

标准

继续浏览