WordPress以及表单插件Gravity Forms和Contact Form 7无法发送邮件问题解决

这其实还是一个Win主机上用WordPress建站的常见问题。
起初我发现用Gravity Forms建立的表单无论如何都不能发送提醒邮件,遂尝试了N种方法,走了N多的弯路。然后惊讶的发现我的Wordpress本身居然也不能发送邮件,也就是找回密码等功能失效。

1. 百度解决方案,凡是提到Gravity Forms的中文网页都只是浅显的在介绍这款插件而已。对我来说百度果然还是不够用的。
2. 于是爬梯子看Google,先是找到Gravity Forms官方网站,里面也是一大堆不能发送邮件的话题。总结下来有这样几类:
a) 自动发送的邮件被系统当成垃圾邮件处理了。我查了下自己的垃圾箱,没有。
b) 服务器不支持PHP的mail()函数。检查结果居然正是如此。PHP基础非常差的我只知道在Win主机下用mail()不靠谱,大量的替代方案是用一个叫“WP Mail SMTP”的插件代替。 查看详细 »

实战WordPress自定义文章类型(1)

今天打算给公司的一个Wordpress网站配置一个自定义文章类型,花了一天时间,记录一下步骤。

WordPress网站原来的文章叫Post,我需要给网站添加一个有别于Post的文章类型,名叫Hotel,目的是把所有的酒店页面归类方便管理。在这些酒店页面上要用自定义字段实现一些特定的格式,展现特定的内容…总之就是折腾出一个新的文章类别,让别人添加内容操作简单化,我自己管理起来也简单化… 查看详细 »

谷歌(Google)被墙,解决地图和字体无法显示的问题

首先,本文以及本站所有文章都是技术探讨文章,不鼓励任何人去fan qiang以及做任何违法的事情。接下来是正文:

谷歌基本上是被和谐透了,谷歌地图API自然也打不开了,于是公司网站上那些谷歌地图都变成空白了…总不能让访客都自己fan qiang吧。纠结了一阵子才知道原来谷歌地图的服务并没有完全被屏蔽,只是我们以前访问的域名maps.google.com访问不了了。
这个域名的谷歌地图还是能正常访问的:http://ditu.google.cn
那么把原来的JS引用地址maps.googleapis.com替换成ditu.google.cn就解决了。

1
<script>http://ditu.google.cn/maps/api/js?v=3&key=xxxxxxx&sensor=false</script>

接下来是谷歌字体问题, 查看详细 »

隐藏百度统计的图标

百度统计目前已经拥有了谷歌分析的大部分日常功能,所以自从谷歌被墙,相信大部分人已经改用百度统计了。但百度统计默认会在你的网站上添加一个图标隐藏百度统计的图标。我觉得这个图标破坏网站的风格,显得很土气,打算把它去除(隐藏)掉。
这个倒也好办,尝试给百度统计代码前后增加一个display为none的DIV: 查看详细 »

在PHPMyAdmin中修改MySQL的root密码

对于我这样的数据库菜鸟来说,登录主机在命令行操作MySQL还是有些不方便,所以我习惯在服务器上装一个PHPMyAdmin来操作数据库。为加强主机的安全性,新装的数据库都要修改MySQL的root密码,以前都是找服务商或网管搞定的,今天我打算自己试试看。百度了几篇文章,自己倒也弄成了。

首先,用root帐号登录PHPMyAdmin,找到名叫“mysql”数据库,点顶部菜单的SQL,进入命令行模式。
在PHPMyAdmin中修改MySQL的root密码 查看详细 »

阿拉伯语网站的CSS要点总结

阿拉伯语不同于其他文字,是从右向左读的,文字要向右对齐,在CSS中右对齐的属性有两条:

1
2
text-align:right;
direction: rtl;

text-align很常见,也就是简单的右对齐属性。direction就不那么常见了。
CSS手册中对direction属性是这样描述的:该属性指定了块的基本书写方向,以及针对 Unicode 双向算法的嵌入和覆盖方向。
也就是说定义了direction:rtl的元素,文字的书写方向是从右至左。另外direction还有控制text-align默认值的作用,定义过direction:rtl的元素,如果没有预先定义过text-align,那么这个元素的text-align的值就变成了“right” 查看详细 »

响应式布局CSS3 Media Queries中屏幕分辨率顺序写法比较

CSS3的Media Queries(媒体查询)在现在的网站开发中已经被应用得越来越频繁,现在但凡开发新的网站,只要不是布局超复杂的项目,不免都要“顺手”做一些响应式布局,尽量以低成本兼容更多的浏览器/设备。现代的移动设备尺寸多样,对于CSS的兼容问题也层出不穷,本文主要探讨Media Queries的分辨顺序问题。从粗略的概念视角开始,不涉及具体的技术细节。 查看详细 »

原生Javascript拖放程序

自己造轮子写个原生拖放,要做到简单调用,考虑拖放对象所在的环境,还要兼容老IE,还是挺锻炼人的。
主要碰到几个问题:

  1. 关于冒泡和阻止默认事件,以前的理解都很粗略,自己写的时候才知要细分。
    一是要阻止事件传递,即事件冒泡,老IE里是ev.cancelBubble=true,其他浏览器是ev.stopPropagation(),要在onmousedown的时候就定义好;
    然后是阻止默认事件,主要是为了防止图片无法拖动的问题,要在onmousemove的时候,老IE里是ev.returnValue=false; 其他浏览器ev.preventDefault()
  2. 拖动过程中鼠标移出物件,就要把事件方法在document上复制一遍:document.onmousemove=_self.onmousemove; 并且考虑到拖放结束的时候鼠标可能是在任意位置,那就干脆把onmouseup方法写在document上
  3. 单纯的拖放物件其实没什么用,实际应用的时候肯定会给拖放增加范围,比如自制的滚动条,幻灯效果等。所以给拖放对象的父级元素作边界。于是又重温了各种位置取值的兼容问题,getBoundingClientRect()是一个很有用的函数,不过在老IE里面取不到宽高,所以要自己计算一下。

查看详细 »

EDM制作兼容经验谈

尽管都是用HTML语言,EDM和网页的制作差别还是随着现代电脑/手机等设备的升级,不断地分化着。可以说EDM是保守的极端,应该完全避免新技术(比如CSS3新属性,HTML5的新元素等)的应用。

总结几条EDM制作最基本的要点:

  • 不能用div布局,更不能用浮动。所有关于布局都用老旧的方法 – table实现,如果有需要可以大表套小表,不过层级还是尽量精简;
  • 不能用百分比来布局,每一个单元格(td)都要用固定宽度,必要时也固定高度。页面内容区宽度推荐600px;
  • 除了图片可以外连,其他一切,包括CSS都不能外链,更禁用iframe这样的页面嵌套;
  • CSS要完全嵌入html元素中,不能写在页头,当然更不能外链。完全不用CSS3的新属性;
  • CSS2中应该禁用的常用属性有float,clear,position,top/left/right/bottom,overflow,z-index 等等…
  • 完全禁用任何形式的Javascript和其他脚本
  • HTML中应该禁用的,除了所有的HTML5新元素外,还有marquee,object,iframe,所有的表单元素和页头元素

查看详细 »