Archive for the ‘WordPress’ Category

admin-ajax 500

临下班,小客户期望我的 Widgets 能够修改一些内容。
点完 Save 按钮,都准备关机了,却看到菊花转呀转,始终始终保存不上。
得,扔个修改后的 index.html 上去,回家再说吧。

审查元素 Console 报了这个:

[Error] Failed to load resource: the server responded with a status of 500 (Internal Server Error) (admin-ajax.php, line 0)

先用了重启大法、停插件大法,都无效之后。
开始搜 admin-ajax 500 ,结果吐出来一堆垃圾文章。
甚至傻乎乎的照做,重装了 php5-curl 还是解决不了问题。

沉住气,查了一下 error.log (出问题果然还是要先查日志)

[Sun Sep 06 20:51:42.828453 2015] [:error] [pid 2987] [client 211.151.229.101:58371] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4915229 bytes) in /cuikai/www/html/wp-includes/wp-db.php on line 1173, referer: /wp-admin/widgets.php

再去查 wp-db.php on line 1173
得到一个线索,wp升级的时候会产生很多杂七杂八的玩意,导致后台各种慢。
顺藤摸瓜找到一篇 7 年前的文章,是通过直接删数据库冗余的临时解决方案。
略过不表。

说一下怎么治根。

第一步:
打开 wp-includes/taxonomy.php file 跳转到 4448 行

wp_schedule_single_event( ‘wp_batch_split_terms’, time() + MINUTE_IN_SECONDS );
修改为
wp_schedule_single_event( time() + MINUTE_IN_SECONDS, ‘wp_batch_split_terms’ );
以绝后患。

第二步:
创建一个 /wp-content/mu-plugins/fix.php 内容如下:

<?php
function clear_bad_cron_entries() {
    
// Fix incorrect cron entries for term splitting
    
$cron_array = _get_cron_array();
    
if ( isset( $cron_array['wp_batch_split_terms'] ) ) {
        
unset( $cron_array['wp_batch_split_terms'] );
            
_set_cron_array( $cron_array );
    
}
}
clear_bad_cron_entries();

在浏览器地址栏访问一下该文件 uicss.cn/wp-content/mu-plugins/fix.php

ok 大功告成。
捎带着,后台各种操作也变快了,噗哈哈哈。

WordPress后台编辑器快速标签

WordPress后台编辑器里已经内置了一些标签

edButtons[10] = new qt.TagButton('strong','b','<strong>','</strong>','b');
edButtons[20] = new qt.TagButton('em','i','<em>','</em>','i'),
edButtons[30] = new qt.LinkButton(), // special case
edButtons[40] = new qt.TagButton('block','b-quote','\n\n<blockquote>','</blockquote>\n\n','q'),
edButtons[50] = new qt.TagButton('del','del','<del datetime="' + _datetime + '">','</del>','d'),
edButtons[60] = new qt.TagButton('ins','ins','<ins datetime="' + _datetime + '">','</ins>','s'),
edButtons[70] = new qt.ImgButton(), // special case
edButtons[80] = new qt.TagButton('ul','ul','<ul>\n','</ul>\n\n','u'),
edButtons[90] = new qt.TagButton('ol','ol','<ol>\n','</ol>\n\n','o'),
edButtons[100] = new qt.TagButton('li','li','\t<li>','</li>\n','l'),
edButtons[110] = new qt.TagButton('code','code','<code>','</code>','c'),
edButtons[120] = new qt.TagButton('more','more',' <a rel="nofollow" href="/wordpress-quicktag/#more-16803" class="more-link">阅读全文 &raquo;</a>

更改WordPress文章预览的链接

久久也不更新,流量反而还一直涨。
换到SAE还有点扛不住的趋势。

索性一咬牙,把首页的index.php换成了index.html
降低资源的开销,再挂满了各种小广告……
转眼一看,每天都有上百块的收入,越发觉得,就这样吧。
反正大家都是开发者,你们都有RSS的对不对,就算没RSS也会过滤广告的对不对。

跑题跑的严重
本来在写“五味杂陈”的,刚开了个头,发现每次按预览按钮,都会跳转到
uicss.cn/?p=16706&preview=true 这样的URL之下
服务器默认就把index.html的小广告给我弄的铺面而来了。
手动一次次把地址修改成 uicss.cn/index.php?p=16706&preview=true 实在烦躁。

于是先搞了个Rewrite的方法凑合用了用,不开心,有点太丑陋:

RewriteCond %{QUERY_STRING} p=(.*)&preview=true
RewriteRule (.*) /index.php?p=%1 [R=301,L]

完事试了试修改themes下functions.php的方法,舒服了好多。
喏,直接把代码加进去就行了。

//预览按钮链接
function uicss_preview_link() {
    
$slug = basename(get_permalink());
    
$mydomain = '/';
    
$mydir = 'index.php';
    
$mynewpurl = "$mydomain$mydir$slug&preview=true";
    
return "$mynewpurl";
}
add_filter( 'preview_post_link', 'uicss_preview_link' );

WordPress搬家到sae

新浪每月会给高级开发者1万多的云豆
切一半流量过去测了几天,比较稳定,索性整个搬了过来。(对,以上都是炫耀)
备忘如下:

静态文件存储

虽然豆子多,但代码空间只有100M,直接把wp-content的uploads拷过来就撑爆了。需要在Storage开个文件夹,用小黄鸭Cyberduck上传静态资源,然后数据库里批量替换掉之前文章内的链接。

数据库备份

Storage再开一个backup的文件夹,然后在网站根目录创建backup.php

<?php
$date = date('Y-m-d');
$dj = new SaeDeferredJob();
$taskID=$dj->addTask("export","mysql","backup","$date.sql.zip","app_cuikai","","");
?>

config.yaml 里加个cron 每周执行一次

cron: - description: backup
url: backup.php
schedule: every Saturday of month 02:00
sitemap

结合sae提供的google-sitemap-generator扩展,生成sitemap到Storage
网站代码目录添加sitemap.php

<?
    
header("Content-Type: text/xml;");
    
$url="http://cuikai-wordpress.stor.sinaapp.com/sitemap.xml";
    
$contents=@file_get_contents($url);
    
echo $contents;
?>

config.yaml里中转

- rewrite: if ( path ~ "sitemap.xml") goto "sitemap.php"
二级域名跳转

/wp-blog-header.php 开头添加如下代码

if(strtolower($_SERVER['SERVER_NAME'])=='cuikai.sinaapp.com')
{
$URIRedirect=$_SERVER['REQUEST_URI'];
if(strtolower($URIRedirect)=="/index.php")
{
$URIRedirect="/";
}
header('HTTP/1.1 301 Moved Permanently');
header('Location:'.$URIRedirect);
exit();
}
域名cname指向

万网不支持cname记录url,要么ping域名拿到a记录,要么托管到DNSPod

就这样,别的没啥需要记的。

Page 1 of 912345...Last
崔凯博客
Powered by WordPress | Theme by ck web design | TOP 顶部
Copyright 崔凯 All rights reserved. 蜀ICP备12025891号.
友情链接:万达娱乐主管  万达招商  万达开户  华宇招商  万达招商  万达注册  万达娱乐直属  guoqibee.com  万达直属QQ  万达登录