存档

文章标签 ‘wordpress’

MagicMailer 发送邮件乱码解决方案

2009年4月23日 1 条评论

在配置邮件通知和联系表单时,需要启用wordpress的邮件发送功能。在具体配置的邮件发送的时候,遇到了非常棘手的问题,通过各种方式都无法解决,当然主要还是因为我是个wordpress菜鸟。后来找到一个非常好的邮件发送插件MagicMailer—这是非常朴素的插件,功能强大,配置简单。

安装好MagicMailer之后, 就能发送邮件了。但是在测试的时候,发现收到的邮件标题都是乱码。这是江湖上流传已久的问题,很多高手也给给出了非常具体的解决方案。

不过细细研究下来,发现这些解决方案都是基于wordpress默认邮件发送功能的,用MagicMailer插件导致的邮件乱码问题尚未有人提及。立足于前辈们的研究成果,仔细看了看MagicMailer的代码,我给自己找了条道:

对MagicMailer.php做点简单的更改:

function wp_mail($to, $subject, $content, $headers='', $debug=false)
{
//添加下面一行,解决乱码问题
$subject = '=?' . get_option('blog_charset').'?B?'.base64_encode($subject).'?=';
……
}

保存、上传,顺利解决邮件乱码问题。

WordPress乱码问题集

2009年4月8日 没有评论

使用Wordpress快一个月了,在配置过程中常常被乱码困扰。下面总结下在哪些情况下会遇到乱码:

1.修改模板后,如果输入中文可能产生乱码。

2.数据迁移后、换主机后可能产生乱码。

3.发送邮件,主题、正文,发件人等字段都可能出现乱码。

4.wordpress版本升级可能导致乱码。

5.使用老外开发的插件可能会遇到此问题。

6.用Windows Live Writer等离线工具写博出现乱码。

 

以上六点基本涵盖了使用wordpress过程中可能遇到的所有乱码问题,如有遗漏敬请留言提示。下面一篇文章具体说明为啥会出现乱码、以及每种情况下的解决方案。

分类: 聚焦开源 标签: ,

Windows Live Writer实现代码高亮

2009年4月7日 2 条评论

的博客有时会包含大量代码,如果能在文章中高亮显示代码文章的可读性肯定会好很多。为了实现代码高亮,之前找了很多插件,但是效果都不是很理想。经过研究终于找到一个完美的解决方案,这个解决方案具有如下优点:

    1. 代码简洁,用<pre>标签实现代码高亮,不会生成太多Html标签。
    2. 支持多种语言,包括c#,c++,php,python等10多种语言。
    3. 扩充方便,可以通过简单二次开发实现对其它语言的支持。
    4. 使用方便,把代码复制到代码高亮转换窗口即可。

下面一步步介绍如何配置WLW+wordpress的代码高亮解决方案:

1.准备工作:

下载

下载成功后得到一个名为PreCodePlugin_4.0.2.msi的文件

下载

下载成功后得到一个名为syntaxhighlighter_2.0.296.zip文件。

2.安装:

关闭Windows Live Writer,安装PreCodePlugin_4.0.2.msi。安装成功后启动WLW,此时在插件列表里应该出现一项名为PreCode Snippet的插件。

将syntaxhighlighter_2.0.296.zip解压缩至wordpress的活动主题目录,例如:\www\wp\wp-content\themes\lutuzhi\

3.在header.php 中,在<meta http-equiv="Content-Type" content="<?php bloginfo(‘html_type’); ?>; charset=<?php bloginfo(‘charset’); ?>" />下方添加:

<script type="text/javascript" src="scripts/shCore.js"></script>
<script type="text/javascript" src="scripts/shBrushBash.js"></script>
<script type="text/javascript" src="scripts/shBrushCpp.js"></script>
<script type="text/javascript" src="scripts/shBrushCSharp.js"></script>
<script type="text/javascript" src="scripts/shBrushCss.js"></script>
<script type="text/javascript" src="scripts/shBrushDelphi.js"></script>
<script type="text/javascript" src="scripts/shBrushDiff.js"></script>
<script type="text/javascript" src="scripts/shBrushGroovy.js"></script>
<script type="text/javascript" src="scripts/shBrushJava.js"></script>
<script type="text/javascript" src="scripts/shBrushJScript.js"></script>
<script type="text/javascript" src="scripts/shBrushPhp.js"></script>
<script type="text/javascript" src="scripts/shBrushPlain.js"></script>
<script type="text/javascript" src="scripts/shBrushPython.js"></script>
<script type="text/javascript" src="scripts/shBrushRuby.js"></script>
<script type="text/javascript" src="scripts/shBrushScala.js"></script>
<script type="text/javascript" src="scripts/shBrushSql.js"></script>
<script type="text/javascript" src="scripts/shBrushVb.js"></script>
<script type="text/javascript" src="scripts/shBrushXml.js"></script>
<link href="styles/shCore.css" type="text/css" rel="stylesheet" />
<link href="styles/shThemeEmacs.css" type="text/css" rel="stylesheet" />
<script type="text/javascript">SyntaxHighlighter.config.clipboardSwf = 'scripts/clipboard.swf';SyntaxHighlighter.all();</script>

如此配置之后,通过Windows Live Writer插入的代码,在wordpress中可以十分优雅的显示出来。本文的代码高亮效果即时通过这种方式实现。

UTF-8导致页面空白

2009年4月6日 1 条评论
问题描述

今天博客做了些改动,在本地调试时没注意看版式,上传到服务器后发现在所有页面的顶部出现了一块空白区域,如下图:UTF8导致-顶部空白

注意,上图顶部有大概10px的空白,看起来非常难看。

问题分析

一开始我以为不小心改了css文件,在body顶部加了margin,仔细检查代码和css文件之后排除了这种可能性。通过将更新后的代码和老版本的代码比较后,彻底排除了因为编码引起这种问题的可能,主要因为代码改的很少,用代码比较的方式可以分析出来,如果代码量比较大的话,不建议用这种方式。(注意:代码更改前做备份非常重要,如果能用svn来管理就更完美了)。这个问题至此很难再分析下去了,只能google一把和百度一下,但是依然没有找到任何解决方案(后来知道查询时没选准关键字)。

这个问题至此已经陷入死局,只能前前后后仔细的回忆到底改了哪些东西,在代码的改动之外在操作方面有没有做过改动。后来想起,因为wordpress默认的编码时utf-8的,输入中文经常被转换成乱码,为了避免输入的中文变成乱码,我把所有的PHP文件都特地另存为utf-8了,用的是windows自带的记事本。此时基本确定,网页出现空白的问题又是编码惹的祸。

解决方案

用ultraedit打开header.php文件,再次另存为utf-8格式,不过这时一定要选择 “utf-8 无 BOM”。在ultraedit中,有一个选项可以控制保存utf-8文件时是否写入 BOM,如下图:将图中标记选项清除,可以避免在保存utf-8文件时写入BOM文件头标记。ULTRAEDIT-BOM

 

在另存文件时,也要选择合适的格式,如下图: 保存文件时,选择标记的格式

ULTRAEDIT-保存

通过ultraedit再次转换后, 顶部出现空白的问题得到圆满解决。在用wordpress搭建博客的时候,编码引起的问题非常多,以后再出现乱码、页面空白或者其它乱七八糟的问题首页要考虑的就是是否编码出了问题。

WordPress静态化配置之Nginx

2009年3月31日 2 条评论

路途志从开博到今天,已经走过了月余。在这一个多月的时间,参考前辈们的经验,对博客进行了大量的定制。其中比较重要的一个工作就是页面静态化—永久链接静态化。在做这个工作的时候,遇到了很大的问题,的服务器是centos5.2+nginx,而公开的资料无一例外都是基于apache的。参考了和apache的案例,经过多次试验终于在Nginx下实现了Wordpress永久链接静态化,Nginx配置文件的server部分加入下列四行:

 

#下面四行斜体字实现链接rewrite,http://www.lutuzhi.com中的所有页面实现了静态化 

rewrite ^/(index|atom|rsd)\.xml$ http://www.lutuzhi.com last;

rewrite ^([_0-9a-zA-Z-]+)?(/wp-.*) $2 last;

rewrite ^([_0-9a-zA-Z-]+)?(/.*\.php)$ $2 last;

  rewrite ^ /index.php last;

完整的server配置如下:

server
{
  listen       80;
  server_name www.lutuzhi.com lutuzhi.com *.lutuzhi.com;
  index index.html index.htm index.php;
  root  /yuluyu/wp;

  #limit_conn   crawler  20;   

  if (!-e $request_filename) {

#下面四行斜体字实现链接rewrite,http://www.lutuzhi.com中的所有页面实现了静态化 

rewrite ^/(index|atom|rsd)\.xml$ http://www.lutuzhi.com last;

rewrite ^([_0-9a-zA-Z-]+)?(/wp-.*) $2 last;

rewrite ^([_0-9a-zA-Z-]+)?(/.*\.php)$ $2 last;

rewrite ^ /index.php last;

  }
  location ~ .*\.(php|php5)?$
  {     
    #fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include fcgi.conf;
  }
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  {
    expires      30d;
  }

  location ~ .*\.(js|css)?$
  {
    expires      1h;
  }   

  log_format  lutuzhi  ‘$remote_addr – $remote_user [$time_local] "$request" ‘
            ‘$status $body_bytes_sent "$http_referer" ‘
            ‘"$http_user_agent" $http_x_forwarded_for’;
  access_log  /yuluyu/logs/lutuzhi.log  lutuzhi;
    }

 

Nginx配置文件更改后,用下列命令更新立即生效:

检查配置文件是否正确:/yuluyu/nginx/sbin/nginx –t
使新配置文件立即生效:kill -HUP `cat /yuluyu/nginx/nginx.pid`

如何安装Windows Live Writer插件

2009年3月27日 2 条评论

Windows Live Writer 是一个强大的离线博客编辑工具,通过它可以离线编辑内容丰富的博文。它不但支持微软的live space,还支持诸如Wordpress 这样的开源博客系统。

Windows Live Writer除了自身强大的编辑功能之外,还提供了接口,让其它开发人员通过插件提供工具自身没有提供的功能。比如说语法高亮功能Windows Live Writer自身没有提供,而很多技术类博客作者很需要这个功能,有一个名为SyntaxHighlight的插件就很好的解决了这个问题。

那么,如何安装插件呢?在Widnows Live Writer下安装插件的方法很简单,只需要将插件拷贝到C:\Program Files\Windows Live\Writer\Plugins下面即可。这里有两个细节要注意:

1.C:\Program Files 这是Windows Live Writer在我机器上的安装路径,在你的机器上可能是另一个路径。

2.拷贝插件时,不是把插件文件夹拷贝至C:\Program Files\Windows Live\Writer\Plugins,而是把文件夹里面的内容拷贝过去,这个细节一定还要注意。我在第一次安装插件时就犯了这个错误,在安装SyntaxHighlight插件时把整个文件夹都复制过去了,结果在 工具 | 插件 列表里一直没出现SyntaxHighlight字样。后来把该文件夹下文件和子文件夹拷贝过去才解决这个问题。如图:

image

Widnows Live Writer采用这样的插件管理方式不利于插件的管理,如果插件过多,plugins文件夹下内容会非常混乱。Wordpress的插件管理方式很值得借鉴,wordpress插件的管理采用的是子目录方式,每个插件放在一个以插件名命名的文件夹里,层次清晰,管理方便。

wordpress出现乱码的一个解决方案

2009年3月20日 3 条评论

1.试图进入wordpres后台,系统报错:

Warning: Cannot modify header information – headers already sent by (output started at D:\wamp\www\wp\wp-config.php:1) in D:\wamp\www\wp\wp-includes\pluggable.php on line 850

问题分析:提示信息没有明确指示出了什么问题,但是它提示了问题的大概是在wp-config.php这个文件里。

在出此问题之前,我的确对wp-config.php文件做了一点更改,我把一个wordpres链接的数据库名字改了一下,不过这个更改断不是此错误的根源。

通过zend studio单步调试发现,在出错页面的Html源代码里第一个字符是乱码。至此事情基本有了眉目:肯定是编码问题引起的这个错误。

在编辑word_config.php文件时,我用的是notepad。notepad默认情况下会把文件以ANSI格式保存。而wordpres默认用的是UTF8的编码,以ANSI编码格式保存的文件,在转化成HTML时首字符变成了乱码,所以会报错。

我们在编辑wordpres文件时输入了中文,保存时一定还要注意选择正确的编码。在我的机器上是UTF8编码,在你那里也可能是ANSI。总之出现乱码,先看看是不是编码格式引起的是个很好的习惯。

用wordpress建博客不得不做的几件事

2009年3月8日 没有评论

wordpress默认安装,针对博文提供了基本的增删改查功能。但是默认的功能,无法满足所有人需要,默认的模板也不尽如人意。在默认安装wordpress后你还得:

1.起一个独一无二的名字,写一段简洁而又独一无二的介绍。
2.为你的博客,设计一个自己的logo
3.准确的给你的博文分门别类,分类栏目不要太多。
4.设计自己的网站导航,wordpress默认的用户导航功能很差。
5.增强网站收录功能,提供一切可能的方法帮助你的读者尽可能方便的收藏你的博客和博文。
分类: 网站建设 标签: , ,

SEO Powered by Platinum SEO from Techblissonline