这个问题其实和之前遇到过的IIS服务器上无法识别svg/woff/woff2字体一样,都是IIS没有注册MIME类型导致的。解决方法也一样,先确认文件已经上传并且路径配置正确,然后远程登录主机,打开IIS,找到网站,右键属性,打开“HTTP头”,找到右下角的“MIME类型…”,添加对应的MIME类型即可:
.3gp 3gp video/3gpp
.flv application/octet-stream
.mp4 application/octet-stream
这个问题其实和之前遇到过的IIS服务器上无法识别svg/woff/woff2字体一样,都是IIS没有注册MIME类型导致的。解决方法也一样,先确认文件已经上传并且路径配置正确,然后远程登录主机,打开IIS,找到网站,右键属性,打开“HTTP头”,找到右下角的“MIME类型…”,添加对应的MIME类型即可:
.3gp 3gp video/3gpp
.flv application/octet-stream
.mp4 application/octet-stream
前两天在一个商城项目中,客户希望页面上出现一个活动倒计时的效果,为了方便调用,我想到利用短代码+参数实现任意调用。实现效果是这样的:
查看详细
新的CentOS云主机装了LNMP1.1运行WordPress基本情况还不错,期间也碰到过一些小题,其中就有不能自动更新的问题。每次点自动更新插件,就会提示这样的对话框:
查看详细
之前的Win主机上挂了十几个WordPress网站,客户普遍反映后台操作已经慢到不行。于是我租了一台新的云主机,这次下决心要搞定Linux主机了,同样的配置,Linux跑WordPress肯定要快不少,而且也不会碰到Win主机下的各种怪问题。花了两天时间折腾,终于搞定建站环境,把第一个WordPress网站给搬了过去,也踩了不少的坑,这里记录一下过程,以做备忘。
Linux小白的我先用了CentOS6.4安装建站环境,不过第一次安装就碰到了无法解决的问题,索性换成CentOS6.5重装,最后总算折腾出来了。以下记录的是CentOS6.5下安装建站环境的步骤:
1. 在云主机系统的后台先设个root密码;
2. 下载putty登录工具,登录云主机。此时先输入root账号,接下来会提示输入密码,这个密码要一次性输入完毕,屏幕上不会显示任何*号提示。一旦输错就按回车重新输。 查看详细
今天接到一个奇怪的需求,要给一个网站添加两套谷歌分析代码。按照个人对JS的感觉,直接复制粘帖两段谷歌分析给出的官方代码,会牵涉到对象的不规范重复调用,即使页面不报错,也一定会影响分析数据。既然是谷歌的问题,自然只能到谷歌去找答案。结果倒是也很快找到了。
首先,谷歌官方系统生成的统计代码是这样的,其中UA-×××××××-×是你自己的谷歌分析账号:
1 2 3 4 5 6 7 8 9 | <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-×××××××-×', 'auto'); ga('send', 'pageview'); </script> |
在WordPress构建的网站上我们经常要定义一些全站通用的数据,比如联系方式、公司简介等,这些数据可能会在网站的任何地方被调用,比如首页、相关内页、每个页面的头部和底部等。个人喜欢称这样的数据为通用字段。既然叫通用字段,顾名思义就是存在于数据库里的一条可以被随处调用的数据,WordPress的options表提供了这样的便利。需要注意的是通用字段和自定义字段的概念区别,前者保存在options表中,而自定义字段则保存在postmeta表中。options表一般用来保存一些网站全局设置和插件设置,而保存自定义字段的postmeta表则保存的是用于和文章、页面、菜单等关联的字段。
WordPress封装好的操作options表最重要的函数就是 update_option ,本文通过一个最简单的实例介绍通用字段的操作。
首先看下我要定制的这个后台功能截图:
查看详细
Gravity Forms在国外是一款非常流行的收费表单插件,它的强大之处一两句话是概括不完的,要体会这款插件,可以去他的Demo演示站(demo.gravityforms.com)体会。这个插件帮我不知道省了多少开发时间,所以忍不住再次强力推荐。这样一款优秀插件,本身却并未提供多语言功能。在应用了WPML或qTranslate的多语言网站上,我们可以选择两款“第四方”插件,使多语言插件分别支持Gravity Forms。
首先来说个简单的 – 免费的Qtranslate。原作者停止更新qTranslate后,我们就用qTranslate-X代替。qTranslate是通过这样的语言标签:“<!–en:–><!–:–>”,来实现多语言的。在Gravity Forms表单中使用这样的语言标签,在前台会把这些标签当作文本一起输出。通过插件“qTranslate support for GravityForms”,可以直接让qTranslate-X支持Gravity Forms中填写的语言标签,在前端输出正确的语言文本。 查看详细
qTranslate是一款很不错的多语言插件,我曾经在很多项目中采用它,还写过博客整理了一些经验(点这里)。但可惜的是作者已停止更新这款插件,在WordPress主程序升级到3.9以及以后版本时,强行继续使用这款插件,会导致编辑器的可视化与文本之间无法正常切换,JS报错。如果你的WP网站离不开qTranslate,那就不能随便升级主程序了。
是时候更换插件了,我把我的十几个还在使用中的多语言WordPress网站项目分为两类,对于商业需求大,自定义文章类型多、自定义字段多的网站,我改用了WPML这款收费插件。其他的自定义文章类型、自定义字段少的网站,我把qTranslate替换成qTranslate-x – 一款后继者在继续开发和维护的qTranslate插件。 查看详细
WooCommerce无疑是打造基于WordPress的购物网站最有力的插件了。WooCommerce本身是一款免费的插件,但它提供了丰富的扩展接口,为网站的进一步开发提供了无限的可能。
定制WooCommerce商城网站,有时候我们需要为产品添加一些参数,比如在一个珠宝商城中,每个珠宝都要有主石、主石颜色、主石重量…等参数,为了规范管理和方便调用,这些参数最好都写到自定义字段中去。这里整理一下对产品追加自定义字段的笔记。
WooCommerce产品的自定义字段,在后台就放在常规选项卡中,添加了自定义字段的表现为:
查看详细
最近的几个项目都开始用WPML,一边做一边查询官方文档和论坛,提炼出一些实用函数,记录在此。
1 | echo ICL_LANGUAGE_CODE; |
这个变量直接输出当前页面语言编码,比如默认的英语就是“en”,法语就是“fr”。
需要知道,国际标准语言代码中,简体中文和繁体中文分别是zh-hans和zh-hant,WPML遵循此标准。建议不要在WPML内自定义language code,这将降低WPML和其他插件的兼容可能,增加踩坑概率。
WPML的保存机制是为每个语言单独生成一篇文章,因此要调用特定语言的文章,只要知道它对应其他任何一个语种的一篇文章的ID就可以用这个函数输出:
1 | icl_object_id(ID, type, return_original_if_missing,language_code); |
icl_object_id的官方文档:http://wpml.org/documentation/support/creating-multilingual-wordpress-themes/language-dependent-ids/ 查看详细