A-A+

WordPress在新浪SAE上的各种问题

2016年06月08日 PHP开源系统 评论 1 条 阅读 14 views 次

折腾了3天的时间,博客终于搭建完工了,感谢作者M.J提供的主题治好了我多年的强迫症、同时感谢好友kantm提供的资源,我只是想要一个安静的环境,写写自己的心情,收集一下代码。远离QQ空间,远离朋友圈……好吧,说实话,其实是那上面太多广告了,……

下面分享一下自己在搭建WordPress中遇到的问题:

第一步、首先。我选择的服务器是新浪云SAE,里面的环境已经配置好了,只需要管理代码仓库--SVN、数据库和Storage就行了。其实新浪服务器很坑爹,很多地方做了限制。你要搭建一个WordPress,还不能用原生的WordPress代码,必须是WordPress for SAE,那就有一个问题,就是你不能升级到最新的版本。而新浪提供的最新WordPress for SAE是3.4版的(现在WordPress是4.3.1)。如果你自己讲原生代码上传到代码仓库--SVN后,安装是链接数据库是链接不上的。后来我多次Google搜素,查到了修改WordPress for SAE的办法。文章在这里。然后将代码报上传。over了,对了,这里说一个工具——TortoiseSVN,用来管理代码仓库--SVN的。

第二步、然后就是主题和插件不能更新和下载。上面显示的是要FTP,但是新浪的是SVN。这是个小问题,用TortoiseSVN将主题文件夹上传到…\wp-content\themes\下,将插件上传到…\wp-content\plugins\下。

第三步、就是媒体库相关的问题。首先我试着添加图片,却发现无法显示,后来我发现,普通的服务器,是将媒体上传到…\wp-content\upload\下面,而在新浪的代码仓库--SVN根本没有这个文件夹,于是我在服务器后台找了一下,有个叫Storage的看似储存空间东西,然后我建了一个Storage 储存domain。后来我上网查,这就是储存媒体的地方,将其设置为public,否则WordPress不能上传媒体。

第四步、就是找自己喜欢的主题,和调试bug。这也是花时间最多的地方。我试了十几种主题,发现每个主题都有bug,对于有强迫症的我,这不能忍。部分问题如下:

问题:如何在首页让文章显示摘要而不是全文?(tweentyfifteen)

既然跟主页有关,那就得先找到首页。

wp-content/themes/tweentyfifteen/index.php.

找到如下代码:

  1. get_template_part( 'content',get_post_format());   
  2. //替换为:   
  3. get_template_part( 'content-search',get_post_format());wp-content/themes/tweentyfifteen/functions.php  

添加如下代码,修改摘要显示的的长度,在地下添加如下代码:

  1. function twenty_fifteen_excerpt_length( $length ) { return 200;//改变数字修改长度。 } add_filter( 'excerpt_length', 'twenty_fifteen_excerpt_length');  

问题:如何把摘要下面的continue reading改成中文“阅读全文”的?(tweentyfifteen)

wp-content/themes/tweentyfifteen/functions.php

在底下添加如下代码:

  1. function twentyfifteen_excerpt_more( $more ) { $link = sprintf( '%2$s', esc_url( get_permalink( get_the_ID() ) ), sprintf( __( '阅读全文', 'twentyfifteen' ),''. get_the_title( get_th e_ID() ).'') ); return '…  
  2. '. $link; } add_filter('excerpt_more','twentyfifteen_excerpt_more');//xiariboke.com  

问题、主题《presence》无法响应式布局,和手机中间显示的J?

后台将网页宽度设为90%,在header.php中将M.J改为网站名称

问题、写响应式页面出现问题?

参考文章响应式布局,最后做出常用网站页面

问题、网页前台加载速度慢?

开启Gzip压缩。进入AppConfig页面后,打开“页面压缩”选项.在“高级语法”页面中,AppConfig语法中输入如下内容:

  1. - compress: if ( out_header["Content-Length"]>=50) compress - compress: if ( out_header["Content-type"]=="text/css" ) compress - compress: if ( out_header["Content-type"]=="text/javascript" ) compress - compress: if ( out_header["Content-type"]=="text/html" ) compress - compress: if ( out_header["Content-type"]=="image/png" ) compress - compress: if ( out_header["Content-type"]=="image/jpeg" ) compress - compress: if ( out_header["Content-type"]=="text/plain" ) compress - compress: if ( out_header["Use-Compress"] == "1") compress  

问题、网页后台加载速度慢?

1、因为5月份谷歌的IP被封,wordpress调用谷歌字体需要解析,导致wordpress速度变慢,下面是解决办法.

打开wordpress代码中的文件wp-includes/script-loader.php文件,搜索:fonts.googleapis.com找到这行代码:

  1. $open_sans_font_url = “//fonts.googleapis.com/css?family1=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets”;  

把fonts.googleapis.com替换为fonts.useso.com

具体可以参看fonts.useso.com

2、去掉一些功能,把下面的代码扔到主题中的functions.php中就可以了。

  1. function disable_dashboard_widgets() { remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');//近期评论 remove_meta_box('dashboard_recent_drafts', 'dashboard', 'normal');//近期草稿 remove_meta_box('dashboard_primary', 'dashboard', 'core');//wordpress博客 remove_meta_box('dashboard_secondary', 'dashboard', 'core');//wordpress其它新闻 remove_meta_box('dashboard_right_now', 'dashboard', 'core');//wordpress概况 remove_meta_box('dashboard_incoming_links', 'dashboard', 'core');//wordresss链入链接 remove_meta_box('dashboard_plugins', 'dashboard', 'core');//wordpress链入插件 remove_meta_box('dashboard_quick_press', 'dashboard', 'core');//wordpress快速发布 } add_action('admin_menu', 'disable_dashboard_widgets');//xiariboke.com  

3、gravatar头像问题。在主题function.php中添加

  1. //官方Gravatar头像调用ssl头像链接 function get_ssl_avatar($avatar) { $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','',$avatar); return $avatar; } add_filter('get_avatar', 'get_ssl_avatar');  

问题、用户密码忘记后无法没有邮件找回的功能?

通过WP-Mail-SMTP插件可以发送找回密码邮件链接,但是找回链接总是失效其实是邮箱发送的地址后面多了个”>”号,本来是WordPress为了美观,前后加上了尖括号,结果适得其反,被邮箱解析到地址里面去了,点击后自然会是无效的了。解决的方法很简单,把下面的代码加入当前主题的functions.php里面就可以了。

  1. function reset_password_message( $message$key ) { if ( strpos($_POST['user_login'], '@') ) { $user_data = get_user_by('email', trim($_POST['user_login'])); } else { $login = trim($_POST['user_login']); $user_data = get_user_by('login', $login); } $user_login = $user_data->user_login; $msg = __('有人要求重设如下帐号的密码:'). "\r\n\r\n"$msg .= network_site_url() . "\r\n\r\n"$msg .= sprintf(__('用户名:%s'), $user_login) . "\r\n\r\n"$msg .= __('若这不是您本人要求的,请忽略本邮件,一切如常。') . "\r\n\r\n"$msg .= __('要重置您的密码,请打开下面的链接:'). "\r\n\r\n"$msg .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') ; return $msg; } add_filter('retrieve_password_message', reset_password_message, null, 2);//xiariboke.com  

问题、删除修订版文章等优化?

可以用wp-clean-up这款插件

问题、防止垃圾评论?

一般垃圾评论都是国外的一些人评论的纯英文的广告,只要筛选一下,让评论中必须含有中文即可!添加一下代码到主题的function.php中

  1. function refused_spam_comments( $comment_data ) { $pattern = '/[一-龥]/u'; if(!preg_match($pattern,$comment_data['comment_content'])) { err('评论必须含中文!'); } return$comment_data ); } add_filter('preprocess_comment','refused_spam_comments');  

到此大的问题基本上解决了,小的细节自己看不过去的都就改了。哈哈……

标签:

1 条留言  访客:1 条  博主:0 条

  1. 两天

    现在452了吧

给我留言