wordprss中wp-postviews-plus小工具支持qtranslate

wordpress中我用的wp-postviews-plus来进行访问数的统计,台湾的朋友写的,还是非常不错,可以针对用户或者机器人等进行分别统计,另使用的也是ajax方式,即使使用了缓存也不会影响其显示。wordpress后台有详细的设置就不再详细说明了。

今天主要更新了多说的评论系统,所以在页面右侧的浏览量的统计文章中,我就考虑使用wp-postviews-plus自带的小工具放到sidebar里面进行展示,放入到工具栏中,默认设置了下按照总的访问量进行排序,其它默认,点击保存后。进入主页一看,发现显示的文章标题都还是qtranslate的文章题目格式(网站使用了德国华人写的qtranslate,有英语页面),如<!–:zh–><!–:–><!–:en–><!–:–>,因为qtranslate的实现方式就是以这样方式进行存储,针对不同的语言则进行匹配对应标签中的文字进行展示,所以wp-postviews-plus中的小工具则没有考虑到会存在这种状况,故直接将标题所有内容展示出来,变成很复杂又难看的界面,了解到问题就开始修改了。

主要问题就是wp-postviews-plus插件的代码问题,应该只用将widget.php中展示标题的代码通过qtranslate的函数进行提取当前语言对应的内容就可以了。找了下相关资料,qtranslate主要的转换函数为qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage,虽然不懂什么php,但是基本应该也都差不多,一路通过widget.php找到了在postviews_plus.php的 my_str_replace函数,就是生成对应字符串的函数,将$post->post_title 用qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage处理下,即可只显示当前语言的内容,而不是所有内容了。详细修改后的代码如下,$post_title行为修改后的代码:

function my_str_replace($template, $post, $chars) {
	$post_views = intval($post->views);
	$post_title = isset($post->post_title) ? wp_specialchars(qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($post->post_title)) : '';
	if( $chars > 0 ) {
		$post_title = pp_snippet_text($post_title, $chars);
	}
	$post_excerpt = views_post_excerpt($post->post_excerpt, $post->post_content, $post->post_password, $chars);
	$temp = stripslashes($template);
	$temp = str_replace("%VIEW_COUNT%", number_format_i18n($post_views), $temp);
	$temp = str_replace("%POST_TITLE%", $post_title, $temp);
	$temp = str_replace("%POST_EXCERPT%", $post_excerpt, $temp);
	$temp = str_replace("%POST_CONTENT%", $post->post_content, $temp);
	$temp = str_replace("%POST_DATE%", mysql2date(get_option('date_format'), $post->post_date), $temp);
	$temp = str_replace("%POST_URL%", get_permalink($post->ID), $temp);
	return $temp;
}

本文固定链接: http://www.higis.org/2012/05/16/wp-postviews-plus-support-qtranslate/ | Hi,GIS


该日志由 H.J 于2012年05月16日发表在 程序 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: wordprss中wp-postviews-plus小工具支持qtranslate | Hi,GIS
关键字: , , , ,

wordprss中wp-postviews-plus小工具支持qtranslate:目前有1 条留言

  1. 沙发
    可乐:

    你写的文字太复杂了,我表示没看懂,我的主题没有小工具,要怎么调用文章浏览量排行的这个功能?气垫床http://www.qdianc.com

    2012-09-14 %I:%M%p [回复]

发表评论

快捷键:Ctrl+Enter