如今这个时代,网站不带个手机页面怎么好意思拿出手。不过,连wordpress结构都不清楚、php语言也从没接触过的我,在脑子进水进而花费了一天时间之后,也总算让这件事尘埃落定了。
首先搜“Wordpress 手机页面”,结果标题党一大堆,都是列出一份插件清单,然后不痛不痒地介绍,这真让新手犯难,不知该选哪个好。在浏览了相当数量的页面后,我先后尝试了WP-T-WAP和WordPress Mobile Pack,最后还用到了神奇的mb_strimwidth()函数。现简单小节一下实际操作经历带来的经验。
WP-T-WAP显示出来的画面不错。
问题在于,没有内容摘要,硬要显示分类目录——在我看来——最致命的一点就是无法实现根据浏览器信息自动跳转到手机页面了。默认情况下访问domain.com(前提是WordPress主程序放在此域名对应的目录内)/wap才能进入手机页面,当然,可以用子域名进行访问。
设置方法是,先到A记录里或者C记录里添加wap这一条host,然后到空间里用cpanel添加子域,必须指向WordPress根目录下的wap文件夹。这个文件夹在安装和启用了这个插件的时候会自动生成,操作权限(permission)默认是完全开放的,并不像某些博客反应的那样需要去设置成最高权限。
需要解释的是,因为插件默认在WordPress的根目录生成wap文件夹,所以能也才能通过访问WordPress所在文件夹(这里默认在domain.com对应的文件夹下)下的wap文件夹,也就是访问domain.com/wap来实现手机页面的浏览。其次,在A记录或者C记录里添加别的host名可以随意,只要指向wap文件夹就行了。有幸,这一段所述的知识在绑定域名到空间的时候我就掌握了。
既然如此,只得放弃。
WordPress Mobile Pack实现了自动跳转到手机页面,在switcher里甚至可以设置成判断浏览器User-Agent结合访问者的选择。毕竟像Android这样的 智能手机直接访问非wap页面绰绰有余,犯不着强迫来访者钉死。
这个插件不需要设置子域名,直接跳转,省事;当然,绑定一个m的子域名也无所谓,指向WordPress本身所在的目录即可。
不过,即使它提供了很多可调整的页面显示选项,但是即便我选择了显示标题(Title)和摘要(Teaser),并将摘要长度(Teaser length)设置了足足140,手机页面在内容部分也仅仅显示了三个点(“…”),也就是省略号!紧邻的“Read more”链接完全是于事无补,还不如只输出标题来得痛快。
对这个插件搜索得来的信息,启蒙了我,让我感觉到其实手机页面就是另外一个主题而已。
苦苦寻觅,最终只得做出无奈之举,在专门介绍这个插件的博客页面上留言,等待博主的回复。原估计会石沉大海的,没想到四有新人很快就回复了我,让我换一个手机主题试试。这真是一个奇妙的建议,因为换了之后,页面除了比默认的TwentyEleven更简约之外,其余可以当作一样,比如“more”标签对应的“Continue to Read”链接位置就在那里。
如此一来,思路顺着似乎也就变得明朗起来——针对特定的主题设置摘要长度。后来逛了一大圈,总算明白了,摘要设置本身就是针对某一主题的……因为那一堆介绍把the_content函数替换成the_excerpt函数的方法,都是要进wp-content/themes里找到对应主题设置啊,更准确点就是那个index.php。
不过问题又接踵而至,在index里压根就找不到the_content字段啊!这样一来,即使找到WordPress某目录下的formatting.php修改55为更大的数字也无法起效。我居然在这里卡死了,未曾想关键字组“index.php 找不到 the_content”就是出路!好吧,得知含有“content”一词的语句“<?php get_template_part( ‘content’, get_post_format() ); ?>”的意思是调用content.php之后,我表示很无语。跑到content.php里一看,我了个去,the_content函数赫然在列。
但是复制月光博客的代码,会出错。
还好,在走到这一步的时候,我早就寻觅到了mb_strimwidth()函数的踪迹。使用了之后才知道,真他妈很好很强大。
缺点就是嵌套了strip_tags()函数会让摘要变成纯文本的形式,不嵌套的话,确实可以保留原有展示格式(css风格?抑或html标签?),但是一出问题就会让页面很难看。
代码如下:
if(has_excerpt()) the_excerpt();
else
echo mb_strimwidth(strip_tags($post->post_content),0,200,'<a href=”‘.get_permalink().'”>……[阅读全文]</a>’);
复制并粘贴到含the_content那一行,具体是保留原有的“<?php ”和“ >?”,注意引号中留出的空格。
另外,关于这个函数的释义信息可以参考这里。
说实话,光是以”mb_strimwidth()函数”为关键字进行搜索就有无尽的知识,更不用说配合另一关键字“摘要”上阵了。
终于到了结尾了,没有悬念,就是结合WordPress Mobiel Pack、一个手机主题和一个嵌套函数mb_strimwidth(strip_tags()),得以造就了我这粗糙的手机页面:m.3qsami.info、wap.3qsami.info(已关闭,2012年8月26日注)。
Pingback引用通告: 图说s40的时光 | Thank you, Sami!